
------- Original Message ------- On Sunday, June 19th, 2022 at 15:08, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 6/19/22 16:23, Roger Knecht wrote:
On Thursday, June 9th, 2022 at 22:27, Roger Knecht rknecht@pm.me wrote:
On Wednesday, June 8th, 2022 at 15:59, Tom Rini trini@konsulko.com wrote:
On Sat, Jun 04, 2022 at 11:19:15AM +0000, Roger Knecht wrote:
Add cat command to print file content to standard out
Signed-off-by: Roger Knecht rknecht@pm.me
v2:
- Moved cat from boot to shell commands
- Added MAINTAINERS entry
- Added comments
- Improved variable naming
MAINTAINERS | 5 +++++ cmd/Kconfig | 6 ++++++ cmd/Makefile | 1 + cmd/cat.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 cmd/cat.c
diff --git a/MAINTAINERS b/MAINTAINERS index 56be0bfad0..7c5cd178d9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -729,6 +729,11 @@ M: Simon Glass sjg@chromium.org S: Maintained F: tools/buildman/
+CAT +M: Roger Knecht rknecht@pm.me +S: Maintained +F: cmd/cat.c
CFI FLASH M: Stefan Roese sr@denx.de S: Maintained diff --git a/cmd/Kconfig b/cmd/Kconfig index 69c1814d24..8b531c7ebe 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1492,6 +1492,12 @@ endmenu
menu "Shell scripting commands"
+config CMD_CAT
- bool "cat"
- default y
New commands shouldn't be default enabled. I also don't see a test. Please add a test, and enable the command in sandbox so the test is run. Thanks!
Thanks for the review. Will be fixed in the next version.
Hi Tom,
I'm running into issues when writing a test for cat:
Dear Roger,
tests for console commands should be written in Python, see https://u-boot.readthedocs.io/en/latest/develop/py_testing.html.
You will need a test fixture that generates the disk image with the file that you want to load and display in the test function. Have a look at test/py/tests/test_efi_bootmgr/ as an example.
Thanks Heinrich, that was helpful.
We have different files that may be worth printing with 'cat':
- UTF-8 text files like uEnv.txt
run_command() (test/py/u_boot_console_base.py) is causing problems when UTF-8 strings are returned. I will skip the Unicode test for now. I might have time later to dig deeper.
- script files like boot.scr that can be executed with the 'source' command
- binary files
I suggest that the 'cat' command should support all of these. For binary files you can use the print_hex_dump() function for console output.
This would require to auto detected binary files or at least need an additional parameter. The Unix utility 'cat' does not have a hex mode.
As alternative I propose to implement a minimal 'xxd' for u-boot. I hope that is alright for you.
Please, provide a man-page for the 'cat' command in doc/usage/cmd/. You can use doc/usage/cmd/fatinfo.rst as a template.
Will do.
Best regards
Heinrich
Best regards, Roger