* [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 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: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
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