Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: move help strings to markdown file #4816

Merged
merged 13 commits into from
May 2, 2023

Conversation

m11o
Copy link
Contributor

@m11o m11o commented May 1, 2023

issue: #4368

This PR contains bellow contents.

  • Remove duplicated expressions 22d1880
  • Move help strings to markdown file d6366c4

This command has two util names ( test or [ ). And, the format_usage method replaces {} with a util name. So, we changed USAGE as strings that do not contain {}.
If there are better ideas, please tell me.

before

$ cargo run -- [ --help
Check file types and compare values.

Usage: target/debug/coreutils [ EXPRESSION
           target/debug/coreutils [
           [ EXPRESSION ]
           [ ]
           [ OPTION

Options:
  -h, --help     Print help
  -V, --version  Print version


Exit with the status determined by EXPRESSION.

An omitted EXPRESSION defaults to false.  Otherwise,
EXPRESSION is true or false and sets exit status.  It is one of:

  ( EXPRESSION )               EXPRESSION is true
  ! EXPRESSION                 EXPRESSION is false
  EXPRESSION1 -a EXPRESSION2   both EXPRESSION1 and EXPRESSION2 are true
  EXPRESSION1 -o EXPRESSION2   either EXPRESSION1 or EXPRESSION2 is true

  -n STRING            the length of STRING is nonzero
  STRING               equivalent to -n STRING
  -z STRING            the length of STRING is zero
  STRING1 = STRING2    the strings are equal
  STRING1 != STRING2   the strings are not equal

  INTEGER1 -eq INTEGER2   INTEGER1 is equal to INTEGER2
  INTEGER1 -ge INTEGER2   INTEGER1 is greater than or equal to INTEGER2
  INTEGER1 -gt INTEGER2   INTEGER1 is greater than INTEGER2
  INTEGER1 -le INTEGER2   INTEGER1 is less than or equal to INTEGER2
  INTEGER1 -lt INTEGER2   INTEGER1 is less than INTEGER2
  INTEGER1 -ne INTEGER2   INTEGER1 is not equal to INTEGER2

  FILE1 -ef FILE2   FILE1 and FILE2 have the same device and inode numbers
  FILE1 -nt FILE2   FILE1 is newer (modification date) than FILE2
  FILE1 -ot FILE2   FILE1 is older than FILE2

  -b FILE     FILE exists and is block special
  -c FILE     FILE exists and is character special
  -d FILE     FILE exists and is a directory
  -e FILE     FILE exists
  -f FILE     FILE exists and is a regular file
  -g FILE     FILE exists and is set-group-ID
  -G FILE     FILE exists and is owned by the effective group ID
  -h FILE     FILE exists and is a symbolic link (same as -L)
  -k FILE     FILE exists and has its sticky bit set
  -L FILE     FILE exists and is a symbolic link (same as -h)
  -N FILE     FILE exists and has been modified since it was last read
  -O FILE     FILE exists and is owned by the effective user ID
  -p FILE     FILE exists and is a named pipe
  -r FILE     FILE exists and read permission is granted
  -s FILE     FILE exists and has a size greater than zero
  -S FILE     FILE exists and is a socket
  -t FD       file descriptor FD is opened on a terminal
  -u FILE     FILE exists and its set-user-ID bit is set
  -w FILE     FILE exists and write permission is granted
  -x FILE     FILE exists and execute (or search) permission is granted

Except for -h and -L, all FILE-related tests dereference symbolic links.
Beware that parentheses need to be escaped (e.g., by backslashes) for shells.
INTEGER may also be -l STRING, which evaluates to the length of STRING.

NOTE: Binary -a and -o are inherently ambiguous.  Use 'test EXPR1 && test
EXPR2' or 'test EXPR1 || test EXPR2' instead.

NOTE: [ honors the --help and --version options, but test does not.
test treats each of those as it treats any other nonempty STRING.

NOTE: your shell may have its own version of test and/or [, which usually supersedes
the version described here.  Please refer to your shell's documentation
for details about the options it supports.

after

$ cargo run -- [ --help
Check file types and compare values.

Usage: test EXPRESSION
       test
       [ EXPRESSION ]
       [ ]
       [ OPTION

Options:
  -h, --help     Print help
  -V, --version  Print version

Exit with the status determined by EXPRESSION.

An omitted EXPRESSION defaults to false.
Otherwise, EXPRESSION is true or false and sets exit status.

It is one of:

( EXPRESSION )               EXPRESSION is true
! EXPRESSION                 EXPRESSION is false
EXPRESSION1 -a EXPRESSION2   both EXPRESSION1 and EXPRESSION2 are true
EXPRESSION1 -o EXPRESSION2   either EXPRESSION1 or EXPRESSION2 is true

-n STRING            the length of STRING is nonzero
STRING               equivalent to -n STRING
-z STRING            the length of STRING is zero
STRING1 = STRING2    the strings are equal
STRING1 != STRING2   the strings are not equal

INTEGER1 -eq INTEGER2   INTEGER1 is equal to INTEGER2
INTEGER1 -ge INTEGER2   INTEGER1 is greater than or equal to INTEGER2
INTEGER1 -gt INTEGER2   INTEGER1 is greater than INTEGER2
INTEGER1 -le INTEGER2   INTEGER1 is less than or equal to INTEGER2
INTEGER1 -lt INTEGER2   INTEGER1 is less than INTEGER2
INTEGER1 -ne INTEGER2   INTEGER1 is not equal to INTEGER2

FILE1 -ef FILE2   FILE1 and FILE2 have the same device and inode numbers
FILE1 -nt FILE2   FILE1 is newer (modification date) than FILE2
FILE1 -ot FILE2   FILE1 is older than FILE2

-b FILE     FILE exists and is block special
-c FILE     FILE exists and is character special
-d FILE     FILE exists and is a directory
-e FILE     FILE exists
-f FILE     FILE exists and is a regular file
-g FILE     FILE exists and is set-group-ID
-G FILE     FILE exists and is owned by the effective group ID
-h FILE     FILE exists and is a symbolic link (same as -L)
-k FILE     FILE exists and has its sticky bit set
-L FILE     FILE exists and is a symbolic link (same as -h)
-N FILE     FILE exists and has been modified since it was last read
-O FILE     FILE exists and is owned by the effective user ID
-p FILE     FILE exists and is a named pipe
-r FILE     FILE exists and read permission is granted
-s FILE     FILE exists and has a size greater than zero
-S FILE     FILE exists and is a socket
-t FD       file descriptor FD is opened on a terminal
-u FILE     FILE exists and its set-user-ID bit is set
-w FILE     FILE exists and write permission is granted
-x FILE     FILE exists and execute (or search) permission is granted

Except for -h and -L, all FILE-related tests dereference symbolic links.
Beware that parentheses need to be escaped (e.g., by backslashes) for shells.
INTEGER may also be -l STRING, which evaluates to the length of STRING.

NOTE: Binary -a and -o are inherently ambiguous.
Use 'test EXPR1 && test EXPR2' or 'test EXPR1 || test EXPR2' instead.

NOTE: [ honors the --help and --version options, but test does not.
test treats each of those as it treats any other nonempty STRING.

NOTE: your shell may have its own version of test and/or [, which usually supersedes the version described here.
Please refer to your shell's documentation for details about the options it supports.

@github-actions
Copy link

github-actions bot commented May 1, 2023

GNU testsuite comparison:

Congrats! The gnu test tests/tail-2/inotify-dir-recreate is no longer failing!

@cakebaker
Copy link
Contributor

Thanks for your PR. Can you please use some markdown lists? The rendered markdown currently looks a bit messy: https://github.com/uutils/coreutils/blob/7b23281b06011ff7838d8c2cab6bb084fdfc46f4/src/uu/test/test.md

src/uu/test/test.md Outdated Show resolved Hide resolved
src/uu/test/test.md Outdated Show resolved Hide resolved
INTEGER1 -lt INTEGER2 `INTEGER1` is less than `INTEGER2`
INTEGER1 -ne INTEGER2 `INTEGER1` is not equal to `INTEGER2`

FILE1 -ef FILE2 `FILE1` and `FILE2` have the same device and inode numbers
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here and below

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add * in the other places

src/uu/test/test.md Outdated Show resolved Hide resolved
src/uu/test/test.md Outdated Show resolved Hide resolved
src/uu/test/test.md Outdated Show resolved Hide resolved
src/uu/test/test.md Outdated Show resolved Hide resolved
m11o and others added 7 commits May 2, 2023 15:43
Co-authored-by: Sylvestre Ledru <[email protected]>
Co-authored-by: Sylvestre Ledru <[email protected]>
Co-authored-by: Sylvestre Ledru <[email protected]>
Co-authored-by: Sylvestre Ledru <[email protected]>
Co-authored-by: Sylvestre Ledru <[email protected]>
Co-authored-by: Sylvestre Ledru <[email protected]>
@m11o m11o requested a review from sylvestre May 2, 2023 14:27
@uutils uutils deleted a comment from github-actions bot May 2, 2023
@sylvestre sylvestre merged commit 90e0d30 into uutils:main May 2, 2023
@m11o m11o deleted the test-strings-to-md-file-2 branch May 6, 2023 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants