[pacman-dev] [PATCH 7/8] validate shell scripts with $(BASH_SHELL) on build
Allan McRae
allan at archlinux.org
Fri Apr 13 09:10:04 EDT 2012
On 13/04/12 22:57, Dave Reisner wrote:
> On Fri, Apr 13, 2012 at 6:57 AM, Allan McRae <allan at archlinux.org> wrote:
>
>> On 13/04/12 20:49, Florian Pritz wrote:
>>> On 13.04.2012 05:30, Allan McRae wrote:
>>>> On 13/04/12 00:54, Dave Reisner wrote:
>>>>> Pass $(OURSCRIPTS) through the bash parser in read only mode to
>> validate
>>>>> syntax. Note that this doesn't actually catch all errors, but it might
>>>>> be useful for developers working on these scripts.
>>>>>
>>>>> Signed-off-by: Dave Reisner <dreisner at archlinux.org>
>>>>> ---
>>>>> contrib/Makefile.am | 1 +
>>>>> scripts/Makefile.am | 1 +
>>>>> 2 files changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/contrib/Makefile.am b/contrib/Makefile.am
>>>>> index eca39e7..2953912 100644
>>>>> --- a/contrib/Makefile.am
>>>>> +++ b/contrib/Makefile.am
>>>>> @@ -55,6 +55,7 @@ $(OURSCRIPTS): Makefile
>>>>> $(AM_V_GEN)$(edit) $(srcdir)/$@.in >$@.tmp
>>>>> $(AM_V_at)chmod +x,a-w $@.tmp
>>>>> $(AM_V_at)mv $@.tmp $@
>>>>> + @$(BASH_SHELL) -O extglob -n $@
>>>>
>>>> I'm missing why we need extglob here?
>>>
>>> bacman and paccache use extglobs
>>>
>>
>> Yes... and every time someone calls one of those scripts they have to
>> manually set the extglob? No... because that would be stupid.
>>
>
> It would be stupid, but this is bash... So let's ignore rational thought
> for a minute.
>
> $ bash -n ./scripts/repo-add
> ./scripts/repo-add: line 261: syntax error near unexpected token `('
> ./scripts/repo-add: line 261: ` *.@(db|files).tar.gz) TAR_OPT="z"
> ;;'
>
> no-exec mode really does mean no-exec, including shopts that might change
> the behavior of the parser.
Ok then. Bash does something I don't expect yet again!
One thing that will do is cause any script where extglob is needed but
not enabled to "pass". But I think fixing that would be a pain and also
really is not necessary so ignore...
More information about the pacman-dev
mailing list