[devel] Автоматические release

Aleksey Avdeev solo at solin.spb.ru
Tue Aug 4 21:55:17 MSD 2009


Led пишет:
> On Tuesday 04 August 2009 20:07:19 Aleksey Avdeev wrote:
>> Michael Shigorin пишет:
>>> On Tue, Aug 04, 2009 at 07:29:54PM +0400, Aleksey Avdeev wrote:
>>>> Похоже начало вытанцовываться что-то похожее. Если использовать
>>>> прилагаемый макрофайл (см. вложение), то:
>>>>
>>>> Release: %distr_auto_release <prefix><number>[.<suffix>]
>>> IMHO чуточку лучше бы
>>>
>>> Release: %distro_release ...
>>>
>>> или вообще
>>>
>>> Release: %branch_release ...
>>    OK. Тогда и остальные макросы в %branch_switch и %branch_release_num,
>> для единообразия.
>>
>>>> PS: Данный вариант мне нравиться дольше, чем используемый
>>>> сейчас. Думаю запаковать его. Прошу предлагать более внятные
>>>> названия для макросов и/или самого пакета.
>>> Да, вполне симпатично.
>>>
>>>> #auto_distr macros
>>>>
>>>> # release format: <prefix><number>[.<suffix>]
>>>> %distr_auto_release() %(if [ "%{?distr_switch}" = "" ]; then echo "%1";
>>>> else echo "%1"|sed -rn -e
>>>> 's@^([^[:space:]]+)([0-9]+)(|(\\.[^[:space:]]+))$@\\1/\\2/\\3 at p'|awk -v
>>>> FS='/' -v distr_name='%{?distr_switch}' -v distr_num='%{?distr_num}'
>>>> 'BEGIN {if (distr_num == "") {num="1"} else {num=distr_num}; suf=("."
>>>> distr_name "." num) }; {print $1 ($2-1) suf $3}'; fi)
>>> Что-то подсказывает, что вместо if, echo, sed и awk можно
>>> обойтись просто awk; с другой стороны, так экономится пара
>>> циклов в тривиальном случае... :)
>>    Вариант избавится от sed напрашивается. Но я не придумал, как в awk с
>> помощью регулярного выражения разрезать строку на 3 переменных:
> 
> split()

   Не понял как применить со сложным регекспом. То что придумал:

$ echo alt2|awk '{split($0, a, 
"^([^[:space:]]+)([0-9]+)(|(\\.[^[:space:]]+))$");print "a[1]=" a[1] " 
a[2]=" a[2] " a[3]=" a[3]}'

возвращает:

a[1]= a[2]= a[3]=

   А мне нужно (при alt2 на входе) получить на выходе:

a[1]=alt a[2]=2 a[3]=

   Кой для этого нужен регексп для split?

-- 

С уважением. Алексей.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 552 bytes
Desc: OpenPGP digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20090804/05e212b7/attachment.bin>


More information about the Devel mailing list