]> git.wh0rd.org - home.git/blame - .profile.d/gentoo.sh
EDITOR: update nano offset
[home.git] / .profile.d / gentoo.sh
CommitLineData
a810f714 1alias ebuild-sync='rsync -av ./ /usr/portage/${PWD#/usr/local/src/gentoo/repo/gentoo/} --exclude ChangeLog --exclude CVS --exclude metadata.xml --delete'
eca710ea 2alias ebuild-emerge='sudo emerge -1av $(echo ${PWD} | awk -F/ "{printf \"%s/%s\", \$(NF-1), \$(NF)}")'
6d0816bf 3alias ekeyword='ekeyword -v -q'
eca710ea 4
2239c239 5_echangelog() {
1afdf944
MF
6 [[ ! -e ChangeLog ]] \
7 && echo "No ChangeLog" \
8 && return 1
9 echangelog "$@" || return 1
2239c239
MF
10}
11er() {
a810f714 12 repoman commit "${@:1:$#-1}" -m "${@:$#}" || return 1
1afdf944 13}
2239c239 14ec() {
369dd755
MF
15 (
16 _echangelog "$@" || exit 1
17 cvs commit -m "$@" || exit 1
18 )
2239c239
MF
19}
20
1afdf944 21att() {
294704a2
MF
22 while [[ $# -gt 0 ]] ; do
23 declare url=$1 tmp=$(mktemp) filename || return 1
24 [[ ${url} == */* ]] || url="http://bugs.gentoo.org/attachment.cgi?id=${url}"
25 printf '%s -> ' "${url}"
26 if eval $(wget -S -O"${tmp}" "${url}" 2>&1 |
27 grep 'Content-disposition:' | sed 's/.* //') && \
28 mv "${tmp}" "${filename}" && \
29 chmod $(printf "%03o" "$((0666 & ~$(umask)))") "${filename}" ; then
30 du -b "${filename}"
31 else
32 echo "FAIL"
33 rm -f "${tmp}"
34 fi
35 shift
36 done
1afdf944
MF
37}
38arch_emails() {
ef325790 39 local ret
1afdf944
MF
40 if [[ $@ == *.ebuild* ]] ; then
41 local e keys
42 for e in "$@" ; do
39d58573 43 keys=$(sed -n '/^[[:space:]]*KEYWORD/{s:.*=::;s:"::g;p}' ${e})
1afdf944
MF
44 for a in ${keys} ; do
45 [[ ${a} != ~* ]] && continue
ef325790 46 ret="${ret} ${a}"
1afdf944
MF
47 done
48 done
49 else
ef325790 50 ret="$*"
1afdf944 51 fi
ef325790
MF
52 printf '%s@gentoo.org ' ${ret//\~}
53 echo
1afdf944 54}
8ef7abb4
MF
55stable_arch_emails() {
56 arch_emails "$@" | sed -r -e 's:([^ ]*-[^ ]*|mips)@[^ ]*::g'
57}
036bd914
MF
58eget_maintainer() {
59 local f=${1:-metadata.xml}
60 local maintainer=$(xml sel -t -v pkgmetadata/herd $f)
61 if [[ ${maintainer:-no-herd} == "no-herd" ]] ; then
62 maintainer=$(xml sel -t -v pkgmetadata/maintainer/email $f)
63 elif [[ -n ${maintainer} ]] ; then
64 maintainer="${maintainer}@gentoo.org"
65 fi
66 if [[ -z ${maintainer} ]] ; then
67 echo "No maintainer found in $f"
68 return 1
69 fi
94696975 70 echo ${maintainer}
036bd914
MF
71 return 0
72}
1afdf944
MF
73submit_bug_stable() {
74 local msg="doit"
75 if [[ $1 == "-m" ]] ; then
76 msg=$2
77 shift 2
78 fi
79 if [[ -z $1 ]] || [[ -n $2 ]] ; then
80 echo "Usage: submit_bug_stable <ebuilds>"
81 return 1
82 fi
036bd914
MF
83 local maintainer
84 maintainer=$(eget_maintainer) || return 1
1afdf944
MF
85 local cat=$(basename $(dirname $(pwd)))
86 local pkg=${1%.ebuild}
87 local ebuild=${pkg}.ebuild
8ef7abb4 88 local cc=$(stable_arch_emails ${ebuild})
1afdf944
MF
89 if [[ -z ${cc} ]] ; then
90 echo "Unable to read ebuild '${ebuild}'"
91 return 1
92 fi
94696975
MF
93 if [[ ${maintainer} == *" "* ]] ; then
94 cc+=",${maintainer#* }"
95 maintainer=${maintainer%% *}
96 fi
ef325790
MF
97 gbugz \
98 post \
5b85a493 99 --batch \
ef325790 100 -t "${cat}/${pkg}: stabilize" \
1afdf944
MF
101 -d "${msg}" \
102 -a "${maintainer}" \
ef325790 103 --cc="${cc// /,}" \
39d58573
MF
104 -k STABLEREQ \
105 --product='Gentoo Linux' \
106 --component=Ebuilds \
ef325790 107 --priority=Normal \
39d58573 108 --severity=enhancement
1afdf944
MF
109}
110
111eskeys() {
112 local k cat
113 if [[ ! -e ChangeLog ]] ; then
114 # running in a category rather than package
115 cat="/"
116 fi
d040ef70 117 [[ -z $* ]] && set -- arm64 m68k s390 sh
1afdf944 118 for k in "$@" ; do
d040ef70 119 ekeyword "${k}=x86" $(grep -l "KEYWORDS.*${k}" *${cat}*.ebuild)
1afdf944
MF
120 done
121}
122_erit() {
123 local msg=$1 ; shift
124 [[ $1 == [[:digit:]]* ]] && msg="$msg #$1" && shift
125 echo repoman commit -m "$(echo $@ | sed 's: :/:g') $msg"
126 repoman commit -m "$(echo $@ | sed 's: :/:g') $msg"
127}
128erstable() { _erit stable "$@" ; }
129erlove() { _erit love "$@" ; }
8ef7abb4
MF
130
131export PORTAGE_INST_UID=${UID}
132export PORTAGE_INST_GID=`id -g`