]> git.pld-linux.org Git - packages/rpm-build-tools.git/blob - update.sh
3cb6e62d348174ba84b323b0fe1ad6b5df8d1ad4
[packages/rpm-build-tools.git] / update.sh
1 #!/bin/sh -e
2
3 # Usage:
4 #   Just run this script in your rpm/packages/rpm-build-tools directory.
5
6 die() {
7         >&2 printf '*** '${1:+"$@\n"}
8         return 1
9 }
10
11 msg() {
12         printf '        '${1:+"$@\n"}
13 }
14
15 [ -f "/etc/shrc.d/rpm-build.sh" ] || die "Install rpm-build-macros package"
16 . /etc/shrc.d/rpm-build.sh
17
18 src[0]=adapter
19 src[1]=adapter.awk
20 src[2]=builder
21 src[3]=pldnotify.awk
22 src[4]=rpm-build-tools.spec
23
24 dst[0]=adapter.sh
25 dst[1]=${src[1]}
26 dst[2]=builder.sh
27 dst[3]=${src[3]}
28
29 #
30 # Checkout on involved files and check for local modifications.
31 #
32
33 for I in 0 1 2 3; do
34         msg "Checking out packages/rpm-build-tools/${dst[$I]} file."
35         rs=$(cvs up ${dst[$I]})
36         case "$rs" in
37                 "M "*) die "You have local modifications in packages/rpm-build-tools/${dst[$I]} file.\nCommit it first." ;;
38         esac
39 done
40 cd ..;
41 for I in 0 1 2 3; do
42         msg "Checking out packages/${src[$I]} file."
43         rs=$(cvs up ${src[$I]})
44         case "$rs" in
45                 "M "*) die "You have local modifications in packages/${src[$I]} file.\nCommit it first." ;;
46         esac
47 done
48
49 #
50 # Check working revisions of src files
51 #
52
53 msg "Checking revisions."
54 for I in 0 1 2 3; do
55         rev[$I]=$(cvs stat ${src[$I]} \
56                 | sed -ne 's/^[[:blank:]]*Working revision:[[:blank:]]*\([[:digit:]]\.[[:digit:]]\+\).*/\1/p')
57 done
58
59 >/dev/null cd -
60
61 #
62 # Check wich dst files need updating, update them and prepare msglog
63 #
64
65 LOG=""
66 msg "Checking wich files need update."
67 for I in 0 1 2 3; do
68         if [ "$(diff -q ../${src[$I]} ${dst[$I]})" ]; then
69           cat ../${src[$I]} > ${dst[$I]}
70                 LOG="$LOG- ${dst[$I]} up to ${rev[$I]}\n"
71         fi
72 done
73
74 [ "$LOG" ] || die "Nothing to update!"
75
76 minor_ver=$(sed -n 's/^\Version:.*\.\([[:digit:]]\+\)/\1/p' rpm-build-tools.spec)
77 minor_ver=$(($minor_ver + 1))
78 sed -i 's/^\(Version:.*\.\)\([[:digit:]]\+\)$/\1'$minor_ver'/' rpm-build-tools.spec
79 sed -i 's/^Release:.*$/Release: 1/' rpm-build-tools.spec
80 ver=$(sed -n 's/^\Version:[[:blank:]]\(.*\)$/\1/p' rpm-build-tools.spec)
81 LOG="- up to $ver\n$LOG"
82
83 #
84 # Show changes and ask user for confirmation.
85 #
86
87 cvs di -u | diffcol | ${PAGER:-'less -r'}
88
89 printf "Commit log:\n$LOG\nCommit (Yes, No)? "
90 read ans
91 case "$ans" in
92         [yY])
93                 cvs ci -m "$LOG" ${dst[0]} ${dst[1]} ${dst[2]} ${dst[3]} ;;
94         *)
95                 msg ":(" ;;
96 esac
97
98 # vim: tabstop=2
This page took 0.029739 seconds and 3 git commands to generate.