File tree Expand file tree Collapse file tree 3 files changed +59
-1
lines changed Expand file tree Collapse file tree 3 files changed +59
-1
lines changed Original file line number Diff line number Diff line change 1
1
hashsum-about = Compute and check message digests.
2
2
hashsum-usage = hashsum --<digest> [OPTIONS]... [FILE]...
3
3
4
+ # Utility-specific usage template
5
+ hashsum-usage-specific = { $utility_name } [OPTION]... [FILE]...
6
+
4
7
# Help messages
5
8
hashsum-help-binary-windows = read or check in binary mode (default)
6
9
hashsum-help-binary-other = read in binary mode
Original file line number Diff line number Diff line change @@ -498,7 +498,7 @@ pub fn uu_app_custom() -> Command {
498
498
/// hashsum is handled differently in build.rs
499
499
/// therefore, this is different from other utilities.
500
500
fn uu_app ( binary_name : & str ) -> ( Command , bool ) {
501
- match binary_name {
501
+ let ( mut command , is_hashsum_bin ) = match binary_name {
502
502
// These all support the same options.
503
503
"md5sum" | "sha1sum" | "sha224sum" | "sha256sum" | "sha384sum" | "sha512sum" => {
504
504
( uu_app_common ( ) , false )
@@ -516,7 +516,17 @@ fn uu_app(binary_name: &str) -> (Command, bool) {
516
516
"b3sum" => ( uu_app_b3sum ( ) , false ) ,
517
517
// We're probably just being called as `hashsum`, so give them everything.
518
518
_ => ( uu_app_custom ( ) , true ) ,
519
+ } ;
520
+
521
+ // If not called as generic hashsum, override the command name and usage
522
+ if !is_hashsum_bin {
523
+ let usage = translate ! ( "hashsum-usage-specific" , "utility_name" => binary_name) ;
524
+ command = command
525
+ . help_template ( uucore:: localized_help_template ( binary_name) )
526
+ . override_usage ( format_usage ( & usage) ) ;
519
527
}
528
+
529
+ ( command, is_hashsum_bin)
520
530
}
521
531
522
532
#[ allow( clippy:: cognitive_complexity) ]
Original file line number Diff line number Diff line change @@ -1080,3 +1080,48 @@ fn test_check_sha256_binary() {
1080
1080
. no_stderr ( )
1081
1081
. stdout_is ( "binary.png: OK\n " ) ;
1082
1082
}
1083
+
1084
+ #[ test]
1085
+ fn test_help_shows_correct_utility_name ( ) {
1086
+ // Test that help output shows the actual utility name instead of "hashsum"
1087
+ let scene = TestScenario :: new ( util_name ! ( ) ) ;
1088
+
1089
+ // Test md5sum
1090
+ scene
1091
+ . ccmd ( "md5sum" )
1092
+ . arg ( "--help" )
1093
+ . succeeds ( )
1094
+ . stdout_contains ( "Usage: md5sum" )
1095
+ . stdout_does_not_contain ( "Usage: hashsum" ) ;
1096
+
1097
+ // Test sha256sum
1098
+ scene
1099
+ . ccmd ( "sha256sum" )
1100
+ . arg ( "--help" )
1101
+ . succeeds ( )
1102
+ . stdout_contains ( "Usage: sha256sum" )
1103
+ . stdout_does_not_contain ( "Usage: hashsum" ) ;
1104
+
1105
+ // Test b2sum
1106
+ scene
1107
+ . ccmd ( "b2sum" )
1108
+ . arg ( "--help" )
1109
+ . succeeds ( )
1110
+ . stdout_contains ( "Usage: b2sum" )
1111
+ . stdout_does_not_contain ( "Usage: hashsum" ) ;
1112
+
1113
+ // Test b3sum
1114
+ scene
1115
+ . ccmd ( "b3sum" )
1116
+ . arg ( "--help" )
1117
+ . succeeds ( )
1118
+ . stdout_contains ( "Usage: b3sum" )
1119
+ . stdout_does_not_contain ( "Usage: hashsum" ) ;
1120
+
1121
+ // Test that generic hashsum still shows the correct usage
1122
+ scene
1123
+ . ccmd ( "hashsum" )
1124
+ . arg ( "--help" )
1125
+ . succeeds ( )
1126
+ . stdout_contains ( "Usage: hashsum --<digest>" ) ;
1127
+ }
You can’t perform that action at this time.
0 commit comments