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 11hashsum-about = Compute and check message digests.
22hashsum-usage = hashsum --<digest> [OPTIONS]... [FILE]...
33
4+ # Utility-specific usage template
5+ hashsum-usage-specific = { $utility_name } [OPTION]... [FILE]...
6+
47# Help messages
58hashsum-help-binary-windows = read or check in binary mode (default)
69hashsum-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 {
498498/// hashsum is handled differently in build.rs
499499/// therefore, this is different from other utilities.
500500fn uu_app ( binary_name : & str ) -> ( Command , bool ) {
501- match binary_name {
501+ let ( mut command , is_hashsum_bin ) = match binary_name {
502502 // These all support the same options.
503503 "md5sum" | "sha1sum" | "sha224sum" | "sha256sum" | "sha384sum" | "sha512sum" => {
504504 ( uu_app_common ( ) , false )
@@ -516,7 +516,17 @@ fn uu_app(binary_name: &str) -> (Command, bool) {
516516 "b3sum" => ( uu_app_b3sum ( ) , false ) ,
517517 // We're probably just being called as `hashsum`, so give them everything.
518518 _ => ( 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) ) ;
519527 }
528+
529+ ( command, is_hashsum_bin)
520530}
521531
522532#[ allow( clippy:: cognitive_complexity) ]
Original file line number Diff line number Diff line change @@ -1080,3 +1080,48 @@ fn test_check_sha256_binary() {
10801080 . no_stderr ( )
10811081 . stdout_is ( "binary.png: OK\n " ) ;
10821082}
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