]> git.pld-linux.org Git - packages/rpm-build-tools.git/blob - rpm-build.sh
- fix terminal piping
[packages/rpm-build-tools.git] / rpm-build.sh
1 # shell aliases and functions for PLD Developer
2 # $Id$
3
4 alias cv='cvs status -v'
5 alias ac='poldek -q --sn ac --cmd'
6 alias ac-requires='ac what-requires'
7 alias ac-provides='ac what-provides'
8 alias ac-verify='poldek --sn ac --sn ac-ready --verify=deps'
9 alias ac-tag='./builder -cf -T AC-branch -r HEAD'
10 alias adif="dif -x '*.m4' -x ltmain.sh -x install-sh -x depcomp -x 'Makefile.in' -x compile -x 'config.*' -x configure -x missing -x mkinstalldirs -x autom4te.cache"
11 alias pclean="sed -i~ -e '/^\(?\|=\+$\|unchanged:\|diff\|only\|Only\|Files\|Common\|Index:\|RCS file\|retrieving\)/d'"
12
13 # merges two patches
14 # requires: patchutils
15 pmerge() {
16         combinediff -p1 $1 $2 > m.patch || return
17         pclean m.patch
18         dif $1 m.patch
19 }
20
21 # makes diff from PLD CVS urls
22 urldiff() {
23         local url="$1"
24         if [ -z "$url" ]; then
25                 echo >&2 "Reading STDIN"
26                 read url
27         fi
28
29         echo >&2 "Process $url"
30         local file="$url"
31         file=${file#*SPECS/}
32         file=${file#*SOURCES/}
33         file=${file##*/}
34         local r1=${file#*r1=}
35         local r2=${r1#*r2=}
36         r2=${r2%[&;]*}
37         r1=${r1%%[&;]*}
38         file=${file%\?*}
39         file=${file%.diff}
40
41         echo >&2 "$file: $r1 -> $r2"
42
43         if [ -t 1 ]; then
44                 cvs diff -u -r$r1 -r$r2 $file | tee m.patch | diffcol
45         else
46                 cvs diff -u -r$r1 -r$r2 $file
47         fi
48 }
49
50 # downloads sourceforge url from specific mirror
51 sfget() {
52         local url="$1"
53         url="${url%?download}"
54         url="http://dl.${url#http://prdownloads.}"
55         # use mirror
56         local mirror="http://nchc.dl.sourceforge.net"
57         url="$mirror/sourceforge/${url#http://dl.sourceforge.net/}"
58         wget -c "$url"
59 }
60
61 # displays latest used tag for a specfile
62 autotag() {
63         local out
64         for a in "$@"; do
65                 out=$(cvs status -v $a | awk '/auto-ac-/{if (!a++) print $1}')
66                 echo "$a:$out"
67         done
68 }
69
70 dif() {
71         if [ -t 1 ]; then
72                 diff -ur "$@" | diffcol | less -R
73         else
74                 diff -ur "$@"
75         fi
76 }
77
78 diffcol() {
79 sed -e '
80         s,\e,\e[44m^[\e[49m,g;
81         s,\a,\e[44m^G\e[49m,g;
82         s,^\(Index:\|diff\|---\|+++\) .*$,\e[32m&,;
83         s,^@@ ,\e[33m&,;
84         s,^-,\e[35m&,;
85         s,^+,\e[36m&,;
86         s,\r,\e[44m^M\e[49m,g;
87         s,      ,    ,g;
88         s,\([^[:space:]]\)\([[:space:]]\+\)$,\1\e[41m\2\e[49m,g;
89         s,$,\e[0m,
90 ' "$@"
91 }
92
93 # chdir to file location and do 'cvs log'
94 cvslog() {
95         local f="$1"
96         local d="${f%/*}"
97         [ "$d" = "$f" ] && d=.
98         (builtin cd $d && cvs log ${f##*/})
99 }
This page took 0.073576 seconds and 4 git commands to generate.