2023-01-10 11:48:54

by Bhaskar Chowdhury

[permalink] [raw]
Subject: [PATCH V2] tools: rcu: Added check for argument and usage function

Thought it would be good to have some formatted way of letting user know
about, how to use this script properly and added some checking too for missing
argument.


cc: [email protected]

Signed-off-by: Bhaskar Chowdhury <[email protected]>
---
Changes from V1 : Flip the code blocks of function for logical evaluation
and strip off the path from script when displaying help
tools/rcu/extract-stall.sh | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/tools/rcu/extract-stall.sh b/tools/rcu/extract-stall.sh
index e565697c9f90..6ea76230f72f 100644
--- a/tools/rcu/extract-stall.sh
+++ b/tools/rcu/extract-stall.sh
@@ -1,11 +1,24 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0+
#
-# Extract any RCU CPU stall warnings present in specified file.
-# Filter out clocksource lines. Note that preceding-lines excludes the
-# initial line of the stall warning but trailing-lines includes it.
-#
-# Usage: extract-stall.sh dmesg-file [ preceding-lines [ trailing-lines ] ]
+# This is a usage function to spit out information about properly use this
+# script
+
+usage() {
+
+ echo Extract any RCU CPU stall warnings present in specified file.
+ echo Filter out clocksource lines. Note that preceding-lines excludes the
+ echo initial line of the stall warning but trailing-lines includes it.
+
+ echo Usage: $(basename $0) dmesg-file [ preceding-lines [ trailing-lines ] ]
+}
+
+# Terminate the script, if the argument is missing
+
+if [ $# -eq 0 ];then
+ usage
+ exit 1
+fi

echo $1
preceding_lines="${2-3}"
--
2.38.2


2023-01-10 17:55:21

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH V2] tools: rcu: Added check for argument and usage function

On Tue, Jan 10, 2023 at 04:46:34PM +0530, Bhaskar Chowdhury wrote:
> Thought it would be good to have some formatted way of letting user know
> about, how to use this script properly and added some checking too for missing
> argument.
>
>
> cc: [email protected]
>
> Signed-off-by: Bhaskar Chowdhury <[email protected]>

Good point on making a usage() function that stands in for the header
comment, thank you! I tweaked this a bit as shown below, so please
check to see if I messed anything up.

Thanx, Paul

------------------------------------------------------------------------

commit f4e5cfbdfe900a41375d68b6c83e438ecc519b7b
Author: Bhaskar Chowdhury <[email protected]>
Date: Tue Jan 10 16:46:34 2023 +0530

tools: rcu: Add usage function and check for argument

This commit converts extract-stall.sh script's header comment to a
usage() function, and adds an argument check. While in the area, make
this script be executable.

[ paulmck: Strength argument check, remove extraneous comment. ]

Signed-off-by: Bhaskar Chowdhury <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>

diff --git a/tools/rcu/extract-stall.sh b/tools/rcu/extract-stall.sh
old mode 100644
new mode 100755
index e565697c9f90e..08a39ad44320d
--- a/tools/rcu/extract-stall.sh
+++ b/tools/rcu/extract-stall.sh
@@ -1,11 +1,25 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0+
-#
-# Extract any RCU CPU stall warnings present in specified file.
-# Filter out clocksource lines. Note that preceding-lines excludes the
-# initial line of the stall warning but trailing-lines includes it.
-#
-# Usage: extract-stall.sh dmesg-file [ preceding-lines [ trailing-lines ] ]
+
+usage() {
+ echo Extract any RCU CPU stall warnings present in specified file.
+ echo Filter out clocksource lines. Note that preceding-lines excludes the
+ echo initial line of the stall warning but trailing-lines includes it.
+ echo
+ echo Usage: $(basename $0) dmesg-file [ preceding-lines [ trailing-lines ] ]
+ echo
+ echo Error: $1
+}
+
+# Terminate the script, if the argument is missing
+
+if test -f "$1" && test -r "$1"
+then
+ :
+else
+ usage "Console log file \"$1\" missing or unreadable."
+ exit 1
+fi

echo $1
preceding_lines="${2-3}"