]>
Commit | Line | Data |
---|---|---|
1afdf944 MF |
1 | cvs_gentoo_url() { |
2 | _cvs_gentoo_url() { | |
3 | if [[ -n $2 ]] ; then | |
4 | echo "Usage: cvs_gentoo_url <file>[:rev1[:rev2]]" | |
5 | return 1 | |
6 | fi | |
7 | ||
8 | # spec has the form file:rev1[:rev2] | |
9 | # rev2 defaults to rev1-1 | |
10 | export IFS=: | |
11 | set -- $1 | |
12 | unset IFS | |
13 | ||
14 | local file=$1 | |
15 | if [[ ! -e ${file} ]] ; then | |
16 | echo "file '${file}' does not exist" | |
17 | return 1 | |
18 | fi | |
19 | local dir="." | |
20 | [[ ${file} == */* ]] && dir=${file%/*} | |
21 | file=${file##*/} | |
22 | ||
23 | local rev2=$2 | |
24 | if [[ -z ${rev2} ]] ; then | |
25 | rev2=$( | |
26 | cd ${dir} | |
27 | export IFS=/ | |
28 | set -- $(grep /${file}/ CVS/Entries) | |
29 | unset IFS | |
30 | echo $3 | |
31 | ) | |
32 | if [[ ${rev2} == "0" ]] ; then | |
33 | # new file | |
34 | rev2="1.1" | |
35 | else | |
36 | # existing file, bump rev automatically | |
37 | rev2="1.$((${rev2#1.}+1))" | |
38 | fi | |
39 | fi | |
40 | local rev2r=${rev2#1.} | |
41 | local rev1=${3:-1.$((rev2r - 1))} | |
42 | ||
43 | local cvsroot=$(<${dir}/CVS/Repository) | |
44 | if [[ ${cvsroot} == gentoo-x86* ]] ; then | |
45 | cvsroot=${cvsroot#gentoo-x86} | |
46 | cvsroot=${cvsroot#/} | |
47 | fi | |
48 | ||
49 | local urirev | |
50 | [[ ${rev2} == "1.1" || ${rev1} == "${rev2}" ]] \ | |
51 | && urirev="?rev=${rev2}" \ | |
52 | || urirev="?r1=${rev1}&r2=${rev2}" | |
53 | echo "http://sources.gentoo.org/${cvsroot}/${file}${urirev}" | |
54 | } | |
55 | local f | |
56 | for f in "$@" ; do | |
57 | _cvs_gentoo_url "${f}" | |
58 | done | |
59 | unset _cvs_gentoo_url | |
60 | } | |
c58e899d MF |
61 | git_gentoo_url() { |
62 | local repo=$(git config remote.origin.url | sed 's:.*git.overlays.gentoo.org/::') | |
63 | git log -n3 ${1:-HEAD} | \ | |
64 | sed "s,^commit ,http://git.overlays.gentoo.org/gitweb/?p=${repo};a=commitdiff;h=," | |
65 | } | |
39d58573 MF |
66 | svn_gentoo_url() { |
67 | local f | |
68 | for f in "$@" ; do | |
69 | svn info "${f}" | \ | |
70 | awk '{ | |
71 | if ($1 == "URL:") { | |
72 | sub(/.*svnroot/,"") | |
73 | URL = "http://sources.gentoo.org" $1 "?" | |
74 | } else if ($1 == "Revision:") { | |
75 | rev = $2 | |
76 | URL = URL "r1=" rev "&r2=" (rev + 1) | |
77 | } | |
78 | } | |
79 | END { print URL }' | |
80 | done | |
81 | } | |
1afdf944 MF |
82 | |
83 | er() { | |
84 | [[ ! -e ChangeLog ]] \ | |
85 | && echo "No ChangeLog" \ | |
86 | && return 1 | |
87 | echangelog "$@" || return 1 | |
88 | repoman commit -m "$@" || return 1 | |
89 | } | |
90 | att() { | |
91 | declare url=$1 tmp=$(mktemp) filename || return 1 | |
92 | [[ $url == */* ]] || url="http://bugs.gentoo.org/attachment.cgi?id=$url" | |
93 | eval $(wget -S -O"$tmp" "$url" 2>&1 | tee /dev/tty | \ | |
94 | grep 'Content-disposition:' | sed 's/.* //') && \ | |
95 | mv "$tmp" "$filename" && \ | |
96 | chmod $(printf "%03o" "$((0666 & ~$(umask)))") "$filename" && \ | |
97 | ls -l "$filename" && \ | |
98 | return 0 | |
99 | rm -f "$tmp" | |
100 | return 1 | |
101 | } | |
102 | arch_emails() { | |
103 | local a ret="" | |
104 | if [[ $@ == *.ebuild* ]] ; then | |
105 | local e keys | |
106 | for e in "$@" ; do | |
39d58573 | 107 | keys=$(sed -n '/^[[:space:]]*KEYWORD/{s:.*=::;s:"::g;p}' ${e}) |
1afdf944 MF |
108 | for a in ${keys} ; do |
109 | [[ ${a} != ~* ]] && continue | |
110 | ret="${ret} ${a/\~}@gentoo.org" | |
111 | done | |
112 | done | |
113 | else | |
114 | for a in "$@" ; do | |
115 | ret="${ret} ${a/\~}@gentoo.org" | |
116 | done | |
117 | fi | |
118 | echo ${ret} | |
119 | } | |
120 | submit_bug_stable() { | |
121 | local msg="doit" | |
122 | if [[ $1 == "-m" ]] ; then | |
123 | msg=$2 | |
124 | shift 2 | |
125 | fi | |
126 | if [[ -z $1 ]] || [[ -n $2 ]] ; then | |
127 | echo "Usage: submit_bug_stable <ebuilds>" | |
128 | return 1 | |
129 | fi | |
130 | local maintainer=$(xml sel -t -v pkgmetadata/herd metadata.xml) | |
131 | if [[ ${maintainer} == "no-herd" ]] ; then | |
132 | maintainer=$(xml sel -t -v pkgmetadata/maintainer/email metadata.xml) | |
133 | elif [[ -n ${maintainer} ]] ; then | |
134 | maintainer="${maintainer}@gentoo.org" | |
135 | fi | |
136 | if [[ -z ${maintainer} ]] ; then | |
137 | echo "No maintainer found in metadata.xml" | |
138 | return 1 | |
139 | fi | |
140 | local cat=$(basename $(dirname $(pwd))) | |
141 | local pkg=${1%.ebuild} | |
142 | local ebuild=${pkg}.ebuild | |
143 | local cc=$(arch_emails ${ebuild} | sed -r -e 's:([^ ]*-fbsd|mips)@[^ ]*::g') | |
144 | if [[ -z ${cc} ]] ; then | |
145 | echo "Unable to read ebuild '${ebuild}'" | |
146 | return 1 | |
147 | fi | |
148 | bugz post \ | |
149 | -u vapier@gentoo.org \ | |
150 | -t "Stabilize ${cat}/${pkg}" \ | |
151 | -d "${msg}" \ | |
152 | -a "${maintainer}" \ | |
153 | --cc="${cc}" \ | |
154 | -U "" \ | |
39d58573 MF |
155 | -k STABLEREQ \ |
156 | --product='Gentoo Linux' \ | |
157 | --component=Ebuilds \ | |
158 | --version= \ | |
159 | --no-append-command \ | |
160 | --depends-on= \ | |
161 | --blocked= \ | |
162 | --priority=P2 \ | |
163 | --severity=enhancement | |
1afdf944 MF |
164 | } |
165 | ||
166 | eskeys() { | |
167 | local k cat | |
168 | if [[ ! -e ChangeLog ]] ; then | |
169 | # running in a category rather than package | |
170 | cat="/" | |
171 | fi | |
172 | [[ -z $* ]] && set -- arm m68k s390 sh | |
173 | for k in "$@" ; do | |
174 | local list="$(grep "^KEYWORDS=.*~${k}\>.*[^~]x86" *${cat}*d -l)" | |
175 | [[ -z ${list} ]] && continue | |
176 | sed -i "1s:.*:# Copyright 1999-$(date +%Y) Gentoo Foundation:" ${list} | |
177 | ekeyword ${k} ${list} | |
178 | done | |
179 | } | |
180 | _erit() { | |
181 | local msg=$1 ; shift | |
182 | [[ $1 == [[:digit:]]* ]] && msg="$msg #$1" && shift | |
183 | echo repoman commit -m "$(echo $@ | sed 's: :/:g') $msg" | |
184 | repoman commit -m "$(echo $@ | sed 's: :/:g') $msg" | |
185 | } | |
186 | erstable() { _erit stable "$@" ; } | |
187 | erlove() { _erit love "$@" ; } |