[devel] I: gear-massupdate subdir file... [-- gear-update options]
Alexey I. Froloff
raorn на altlinux.org
Вс Июн 28 21:17:31 MSD 2009
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.
-------------- next part --------------
#!/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 at -@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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20090628/6fecd63a/attachment.bin>
Подробная информация о списке рассылки Devel