ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] I: gear-massupdate subdir file... [-- gear-update options]
@ 2009-06-28  8:00 Alexey I. Froloff
  2009-06-28 11:14 ` Dmitry V. Levin
  2009-06-28 11:57 ` Alexey Gladkov
  0 siblings, 2 replies; 10+ messages in thread
From: Alexey I. Froloff @ 2009-06-28  8:00 UTC (permalink / raw)
  To: ALT Devel discussion list


[-- Attachment #1.1: Type: text/plain, Size: 505 bytes --]

В аттаче моя наколенная поделка, которая обновляет тарболы и
ставит теги.  В отличие от gear-update, первым аргументом идёт
каталог, который обновляется, потом перечисляются тарболы.  Всё
что идёт после -- отдаётся gear-update.  Умеет выцеплять версию
из имени файла (довольно ограниченное количество вариантов, но
это чуть менее чем 92.7%) и ставить тег.  А то руками это делать
как-то утомительно.

Поюзайте, покритикуйте,  я это причешу и буду пропихивать в gear.

-- 
Regards,
Sir Raorn.

[-- Attachment #1.2: gear-massupdate --]
[-- Type: text/plain, Size: 665 bytes --]

#!/bin/sh -efu

subdir="$1" && shift
files=
while [ $# -gt 0 ]; do
	case "$1" in
		--) shift; break;;
		*) files="$files
$1" ;;
	esac
	shift
done

for f in $files; do
	case "$f" in
		*.tar) ext="tar";;
		*.tar.gz) ext="tar.gz";;
		*.tar.bz2) ext="tar.bz2";;
		*.cpio) ext="cpio";;
		*.cpio.gz) ext="cpio.gz";;
		*.cpio.bz2) ext="cpio.bz2";;
		*.zip) ext="zip";;
		*) echo "fatal!"; exit 1;;
	esac
	nv="${f%.$ext}"
	[ -z "${nv##*-src}" ] && nv="${nv%-src}"
	n="${nv%-*}"
	v="${nv##*-}"
    git clean -f -d "$subdir"
    gear-update "$@" -- "$f" "$subdir"
    faketime -r "$f" -- git commit -m "Imported $f"
    faketime -r "$f" -- git tag -f -m "$n $v" "$n-$v"
done

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28  8:00 [devel] I: gear-massupdate subdir file... [-- gear-update options] Alexey I. Froloff
@ 2009-06-28 11:14 ` Dmitry V. Levin
  2009-06-28 11:51   ` Alexey Gladkov
  2009-06-28 11:57 ` Alexey Gladkov
  1 sibling, 1 reply; 10+ messages in thread
From: Dmitry V. Levin @ 2009-06-28 11:14 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1075 bytes --]

On Sun, Jun 28, 2009 at 12:00:52PM +0400, Alexey I. Froloff wrote:
> В аттаче моя наколенная поделка, которая обновляет тарболы и
> ставит теги.  В отличие от gear-update, первым аргументом идёт
> каталог, который обновляется, потом перечисляются тарболы.  Всё
> что идёт после -- отдаётся gear-update.  Умеет выцеплять версию
> из имени файла (довольно ограниченное количество вариантов, но
> это чуть менее чем 92.7%) и ставить тег.  А то руками это делать
> как-то утомительно.
> 
> Поюзайте, покритикуйте, я это причешу и буду пропихивать в gear.

Вот моя наколеночная поделка:

gear-import() { local f u n v; f="$1"; u="$2"; shift 2; n="${f##*/}"; v="$n"; n="${n%-*}"; v="${v##*-}"; v="${v%.*}"; v="${v%.tar}"; [ -n "$n" -a -n "$v" -a -n "$u" ] && gear-update "$f" "$n" && faketime -r "$f" -- git commit -a -m "$u/${f##*/}" && faketime -r "$f" -- git tag -a -m "$n $v" "v$v"; }

Пример использования:
gear-import $TMPDIR/libpng-1.2.37.tar.bz2 http://downloads.sourceforge.net/libpng

Мне важно указать в коммите, откуда взялся исходник.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28 11:14 ` Dmitry V. Levin
@ 2009-06-28 11:51   ` Alexey Gladkov
  2009-06-28 13:50     ` Alexey I. Froloff
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Gladkov @ 2009-06-28 11:51 UTC (permalink / raw)
  To: devel

28.06.2009 15:14, Dmitry V. Levin wrote:
> Пример использования:
> gear-import $TMPDIR/libpng-1.2.37.tar.bz2 http://downloads.sourceforge.net/libpng
> 
> Мне важно указать в коммите, откуда взялся исходник.

Может тогда добавить в gear-update ключ --commit [<msg>], чтобы иметь
раз есть спрос на эту операцию  ?

А также добавить возможность задавать время. Я давно про это думаю.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28  8:00 [devel] I: gear-massupdate subdir file... [-- gear-update options] Alexey I. Froloff
  2009-06-28 11:14 ` Dmitry V. Levin
@ 2009-06-28 11:57 ` Alexey Gladkov
  2009-06-28 11:59   ` Alexey Gladkov
  1 sibling, 1 reply; 10+ messages in thread
From: Alexey Gladkov @ 2009-06-28 11:57 UTC (permalink / raw)
  To: devel

28.06.2009 12:00, Alexey I. Froloff wrote:
> В аттаче моя наколенная поделка, которая обновляет тарболы и
> ставит теги.  В отличие от gear-update, первым аргументом идёт
> каталог, который обновляется, потом перечисляются тарболы.  Всё
> что идёт после -- отдаётся gear-update.  Умеет выцеплять версию
> из имени файла (довольно ограниченное количество вариантов, но
> это чуть менее чем 92.7%) и ставить тег.  А то руками это делать
> как-то утомительно.

Правильно ли я понял, что эта утилита полезна лишь тогда, когда
какой-то проект добавляется в gear из исходников ?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28 11:57 ` Alexey Gladkov
@ 2009-06-28 11:59   ` Alexey Gladkov
  2009-06-28 17:17     ` Alexey I. Froloff
  2009-06-28 17:18     ` Alexey I. Froloff
  0 siblings, 2 replies; 10+ messages in thread
From: Alexey Gladkov @ 2009-06-28 11:59 UTC (permalink / raw)
  To: devel

28.06.2009 15:57, Alexey Gladkov wrote:
> Правильно ли я понял, что эта утилита полезна лишь тогда, когда
> какой-то проект добавляется в gear из исходников ?

Если да, то тогда её стоит назвать gear-import и добавить функционал ldv.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28 11:51   ` Alexey Gladkov
@ 2009-06-28 13:50     ` Alexey I. Froloff
  0 siblings, 0 replies; 10+ messages in thread
From: Alexey I. Froloff @ 2009-06-28 13:50 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 334 bytes --]

On Sun, Jun 28, 2009 at 03:51:20PM +0400, Alexey Gladkov wrote:
> Может тогда добавить в gear-update ключ --commit [<msg>], чтобы иметь
> раз есть спрос на эту операцию  ?
Тогда уж и --tag туда же.

> А также добавить возможность задавать время. Я давно про это думаю.
Спереть у faketime -d/-r/-t?

-- 
Regards,
Sir Raorn.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28 11:59   ` Alexey Gladkov
@ 2009-06-28 17:17     ` Alexey I. Froloff
  2009-06-28 17:32       ` Alexey I. Froloff
  2009-06-28 17:18     ` Alexey I. Froloff
  1 sibling, 1 reply; 10+ messages in thread
From: Alexey I. Froloff @ 2009-06-28 17:17 UTC (permalink / raw)
  To: ALT Devel discussion list


[-- Attachment #1.1: Type: text/plain, Size: 570 bytes --]

On Sun, Jun 28, 2009 at 03:59:24PM +0400, Alexey Gladkov wrote:
> > Правильно ли я понял, что эта утилита полезна лишь тогда, когда
> > какой-то проект добавляется в gear из исходников ?
> Если да, то тогда её стоит назвать gear-import и добавить функционал ldv.
Задача сводится к:

1. Распарсить имя файла на название проекта и версию.
2. Заполнить шаблон.

.gear/rules и спек недоступны.

Proof of concept в аттаче.  Не поддерживает тарболы вида
http://ftp.debian.org/debian/pool/main/a/adduser-ng/adduser-ng_0.1.2-1.3.tar.gz

-- 
Regards,
Sir Raorn.

[-- Attachment #1.2: gear-massupdate --]
[-- Type: text/plain, Size: 1325 bytes --]

#!/bin/sh -efu

. gear-sh-functions

name=
version=
file=
parse_filename()
{
	local sep tmp
	name=
	version=
	file="${1##*/}"

	# .(tar(.gz|.bz2.wtf)?|t(gz|bz?2|wtf))
	tmp="${file%.*}"
	tmp="${tmp%.tar}"
	# .orig.tar.gz
	tmp="${tmp%.orig}"

	# name-version-(src|sources|whatever)
	if printf %s "$tmp" | egrep -qse '-[a-z]+$' >/dev/null 2>&1; then
		tmp="${tmp%-*}"
	fi

	# name-version and name_version
	sep=_
	[ -z "${tmp##*_*}" -a -n "${tmp##*_*-*}" ] ||
		sep=-

	name="${tmp%$sep*}"
	version="${tmp#$name$sep}"
}

commit_msg='Imported @file@'
tag_name='@name@-@version@'
tag_msg='@name@ @version@'

subdir="$1" && shift
files=
while [ $# -gt 0 ]; do
	case "$1" in
		--) shift; break;;
		*) files="$files
$1" ;;
	esac
	shift
done

for f in $files; do
	parse_filename "$f"

	tmp_ci_msg="$commit_msg"
	tmp_tag_name="$tag_name"
	tmp_tag_msg="$tag_msg"
	
	subst_key_in_vars '@file@' "$file" tmp_ci_msg tmp_tag_name tmp_tag_msg
	subst_key_in_vars '@name@' "$name" tmp_ci_msg tmp_tag_name tmp_tag_msg
	subst_key_in_vars '@version@' "$version" tmp_ci_msg tmp_tag_name tmp_tag_msg

	git clean -f -d "$subdir"
	gear-update "$@" -- "$f" "$subdir"
	faketime -r "$f" -- git commit -m "$tmp_ci_msg"
	faketime -r "$f" -- git tag -f -m "$tmp_tag_msg" "$tmp_tag_name"
done

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28 11:59   ` Alexey Gladkov
  2009-06-28 17:17     ` Alexey I. Froloff
@ 2009-06-28 17:18     ` Alexey I. Froloff
  1 sibling, 0 replies; 10+ messages in thread
From: Alexey I. Froloff @ 2009-06-28 17:18 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 183 bytes --]

On Sun, Jun 28, 2009 at 03:59:24PM +0400, Alexey Gladkov wrote:
> [...] и добавить функционал ldv.
Прочитать diff и исправить ошибки? ;-)  Я согласен.

-- 
Regards,
Sir Raorn.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28 17:17     ` Alexey I. Froloff
@ 2009-06-28 17:32       ` Alexey I. Froloff
  2009-06-28 18:12         ` Dmitry V. Levin
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey I. Froloff @ 2009-06-28 17:32 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 397 bytes --]

On Sun, Jun 28, 2009 at 09:17:31PM +0400, Alexey I. Froloff wrote:
> commit_msg='Imported @file@'
> tag_name='@name@-@version@'
> tag_msg='@name@ @version@'
Даже так:

gear_config_option commit_msg commit.message 'Imported @file@'
gear_config_option tag_name   tag.name       '@name@-@version@'
gear_config_option tag_msg    tag.message    '@name@ @version@'

-- 
Regards,
Sir Raorn.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [devel] I: gear-massupdate subdir file... [-- gear-update options]
  2009-06-28 17:32       ` Alexey I. Froloff
@ 2009-06-28 18:12         ` Dmitry V. Levin
  0 siblings, 0 replies; 10+ messages in thread
From: Dmitry V. Levin @ 2009-06-28 18:12 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 527 bytes --]

On Sun, Jun 28, 2009 at 09:32:48PM +0400, Alexey I. Froloff wrote:
> On Sun, Jun 28, 2009 at 09:17:31PM +0400, Alexey I. Froloff wrote:
> > commit_msg='Imported @file@'
> > tag_name='@name@-@version@'
> > tag_msg='@name@ @version@'
> Даже так:
> 
> gear_config_option commit_msg commit.message 'Imported @file@'
> gear_config_option tag_name   tag.name       '@name@-@version@'
> gear_config_option tag_msg    tag.message    '@name@ @version@'

Так (через gear_config_option) было бы гораздо удобнее.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-06-28 18:12 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-28  8:00 [devel] I: gear-massupdate subdir file... [-- gear-update options] Alexey I. Froloff
2009-06-28 11:14 ` Dmitry V. Levin
2009-06-28 11:51   ` Alexey Gladkov
2009-06-28 13:50     ` Alexey I. Froloff
2009-06-28 11:57 ` Alexey Gladkov
2009-06-28 11:59   ` Alexey Gladkov
2009-06-28 17:17     ` Alexey I. Froloff
2009-06-28 17:32       ` Alexey I. Froloff
2009-06-28 18:12         ` Dmitry V. Levin
2009-06-28 17:18     ` Alexey I. Froloff

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git