Re: [PATCH] Use full path to dnsdomainname and domainname in scripts/mkcompile_h

Américo Wang
2010-01-27T02:44:32Z

On Wed, Jan 27, 2010 at 3:10 AM, Glenn Sommer <glemsom@gmail.com> wrote:
> 2010/1/26 Michal Marek <mmarek@suse.cz>:
>> On 26.1.2010 04:55, Américo Wang wrote:
>>> On Wed, Jan 20, 2010 at 11:06 PM, Glenn Sommer <glemsom@gmail.com> wrote:
>>>> Alternatively, if we want it to be more flexible(and allow the above)
>>>> - we should do something like:
>>>>
>>>> domainname_executable=`which domainname`
>>>> if [ ! -z "$domainname_executable" ] && [ -x "$domainname_executable" ]; then
>>>>
>>
>> (or 'if command -v domainname >/dev/null 2>&1; then domainname ...')
>>
>>
>>> Yeah, this seems better for me.
>>
>> Me too. Glenn, could you send a complete patch doing this? I'll add it
>> to the kbuild tree then.
>>
>> Thanks,
>> Michal
>>
>
> Yeah, good idea with "command -v" ! :)
> ( note: `command -v` will return true if the executable is found -
> else it will return false. )
>
> mkcompile_h is changed slightly in 2.6.32. Here's my new proposed patch:
>
>
> --- scripts/mkcompile_h.orig    2010-01-26 18:59:37.000000000 +0100
> +++ scripts/mkcompile_h 2010-01-26 20:03:42.000000000 +0100
> @@ -67,9 +67,9 @@
>   echo \#define LINUX_COMPILE_BY \"`whoami`\"
>   echo \#define LINUX_COMPILE_HOST \"`hostname | $UTS_TRUNCATE`\"
>
> -  if [ -x /bin/dnsdomainname ]; then
> +  if [ `command -v dnsdomainname 2> /dev/null` ]; then
>     domain=`dnsdomainname 2> /dev/null`
> -  elif [ -x /bin/domainname ]; then
> +  elif [ `command -v domainname 2> /dev/null` ]; then
>     domain=`domainname 2> /dev/null`
>   fi
>

No, this doesn't look good.

First, you don't need to redirect stderr for 'command'.

Second, 'command' also searches in shell built-in commands, aliases,
so I prefer 'whereis -b'.