Stefan Bethke stb at lassitu.de
Tue May 16 14:51:54 PDT 2006

Am 16.05.2006 um 23:15 schrieb Ricardo A. Reis:

> I writed one script for find freebsd kernel modules,
> [ricardo at myfreebsd:~/kldfind] # ./kldfind -h
> Options:
>    -c    --      find all matchs for category
>    -s    --      string match
> http://ricardo.epm.br/freebsd/script/

It's a nice little script, but I think it can be improved in a few  
aspects. Just off the top of my head:

Exit codes: plase see sysexits(3) for a number of well-defined exit  
codes and their meanings. If your script is invoked with the -c or -s  
switch, but no search term was provided, help() will exit with 0;  
EX_USAGE (64) would be more appropriate.

Options handling: FreeBSD (and Posix) provide getopt(1) for options  
processing; while your script doesn't use options as such (-c, -h,  
and -s are really sub-commands, not options here), it's probably  
worthwile to use the standard functionality anyway.

Functionality: inside the loop in search(), the sleep is superflous.  
Also, using exit inside the loop will terminate the script.  With the  
current construction, only the first component of the KLD search path  
will ever be searched.  It is debatable whether not finding any  
matching modules should be an error.

Output format: there's no easy way to post-process the search results  
with a script.  A pretty print version of the output is nice, but for  
a system utility, the default should be something that can be easily  
post-processed with another script.


Stefan Bethke <stb at lassitu.de>   Fon +49 170 346 0140

More information about the freebsd-hackers mailing list