[devel] [PATCH 1/3] Introduce nodiff directive for gear-rules

Dmitry V. Levin ldv на altlinux.org
Ср Дек 9 05:10:04 MSK 2020


On Thu, Nov 26, 2020 at 04:51:50PM +0100, Alexey Gladkov wrote:
> On Thu, Nov 26, 2020 at 04:17:01PM +0100, Alexey Gladkov wrote:
> > > В этом плане
> > > 
> > > 	tar: v на version@:.
> > > 	diff: v на version@:. exclude=.gear
> > > 
> > > по-моему выглядит менее красиво. Но я могу подготовить и такой вариант.
> > 
> > Для меня это выглядит более понятно так как первый вариант выглядит
> > понятно только если знать, что nodiff это опция директивы diff.
> > 
> > Если хотите увеличить читабильность, то давайте реализуем многострочные
> > директивы. Тогда можно будет написать:
> > 
> > 	tar: v на version@:.
> > 	diff: v на version@:. . \
> > 		name=@new_dir на -@version на -@release на .patch \
> > 		exclude=.gear
> 
> Быстрый патч, который позволит сделать такое. Нужно проверить не сломаются
> ли какие-нибудь gear-rules.

По крайней мере в Сизифе gear-rules, содержащих символ "\", не обнаружено.

> Signed-off-by: Alexey Gladkov <legion на altlinux.org>

Это хорошо, но в gear-rules(5) сейчас сказано буквально следующее:
"There is no support for line continuation."

Так что documentation update и commit message тоже нужны. :)

> ---
>  gear                                    |  3 ++-
>  tests/gear-rules-diff-tag-tag-name.test | 11 +++++------
>  2 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/gear b/gear
> index 6282c92..3c95eaa 100755
> --- a/gear
> +++ b/gear
> @@ -575,7 +575,8 @@ parse_rules()
>  	done <"$workdir/rules"
>  
>  	lineno=0
> -	while read -r cmd options; do
> +	# shellcheck disable=SC2162
> +	while read cmd options; do
>  		lineno="$((lineno+1))"
>  		local optional=0
>  		case "$cmd" in
> diff --git a/tests/gear-rules-diff-tag-tag-name.test b/tests/gear-rules-diff-tag-tag-name.test
> index 9c244d8..2234be3 100644
> --- a/tests/gear-rules-diff-tag-tag-name.test
> +++ b/tests/gear-rules-diff-tag-tag-name.test
> @@ -24,12 +24,11 @@ gear_rules_diff_tag_tag_name() # test entry point
>  	git tag -a -m t1 v2
>  	git rm -q -f $dst/file
>  	mkdir .gear
> -	printf '%s: %s %s %s\n' \
> -		"$gear_directive" \
> -		"v1:${src%/*}/@name на -v@version@" \
> -		"v2:${dst%/*}/@name на -r@release@" \
> -		"name=@name на -@old_dir на -@new_dir на -@version на -@release на .diff" \
> -		>.gear/rules
> +	cat >.gear/rules <<-EOF
> +	$gear_directive: \
> +		v1:${src%/*}/@name на -v@version@ v2:${dst%/*}/@name на -r@release@ \
> +		name=@name на -@old_dir на -@new_dir на -@version на -@release на .diff
> +	EOF
>  	git add .gear/rules
>  	gear-store-tags -a
>  	git commit -q -a -m 3

-- 
ldv


Подробная информация о списке рассылки Devel