blob: ae17d69fffeb63c57ecdd607b432ab66d683ed21 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#!/bin/bash
git_repo_path='/usr/src/archlinux32/packages/'
vagrant_path=$(
readlink -f ~/"virtual-boxes/archlinux32-test"
)
base_dir=$(
dirname "$(
readlink -f "$0"
)"
)
pkgname="$1"
update_checksum() {
checksums=$(
ssh arch32-test '
cd '"${pkgname}"'
makepkg -g
' | \
sed '
$! s/$/\\n/
' | \
tr -d '\n'
)
sed -i '
/^\S\+sums=(/{
:a
N
/)/!ba
s/^\S\+sums=(.*)/'"${checksums}"'/
}
' "${git_repo_path}/${repo}/${pkgname}/PKGBUILD"
}
if [ $# -ne 1 ]; then
>&2 echo 'usage: update-archlinux32-package $pkgname'
exit
fi
if [ "${pkgname}" != 'linux-pae' ]; then
>&2 echo 'sry, this is not yet implemented - I only know "linux-pae".'
exit
fi
infos=$(
"${base_dir}/watch-versions" "${pkgname}"
)
if [ -z "${infos}" ]; then
>&2 echo 'Nothing to do.'
exit
fi
old_pkgver=$(
printf '%s\n' "${infos}" | \
cut -d' ' -f4
)
new_pkgver=$(
printf '%s\n' "${infos}" | \
cut -d' ' -f2
)
repo=$(
readlink -f "${git_repo_path}"*"/${pkgname}" | \
cut -d/ -f6
)
sed -i '
s/^pkgver=.*$/pkgver='"'${new_pkgver}'"'/
s/^pkgrel=.*$/pkgrel='"'1'"'/
' "${git_repo_path}/${repo}/${pkgname}/PKGBUILD"
if ssh -o ConnectTimeout=1 arch32-test true; then
vm_is_running=true
else
vm_is_running=false
fi
if ! ${vm_is_running}; then
cd "${vagrant_path}"
vagrant up
fi
scp -r "${git_repo_path}/${repo}/${pkgname}" 'arch32-test:'
update_checksum
case "${pkgname}" in
'linux-pae')
scp "${git_repo_path}/${repo}/${pkgname}/PKGBUILD" 'arch32-test:'"${pkgname}/"
ssh arch32-test '
cd '"${pkgname}"'
sed -i '"'"'
/make oldconfig/ s/^\s*#//
s/^}$/return 1\n\0/
'"'"' PKGBUILD
makepkg -fcrs --asdeps --noconfirm
cp src/linux-'"${new_pkgver}"'/.config config
'
update_checksum
scp 'arch32-test:'"${pkgname}"'/config' "${git_repo_path}/${repo}/${pkgname}/"
git -C "${git_repo_path}/${repo}/${pkgname}" add 'PKGBUILD' 'config'
;;
*)
>&2 printf 'Whoops, I thought I knew %s, but apparently I don'"'"'t.\n' \
"${pkgname}"
exit
;;
esac
ssh arch32-test 'rm -rf --one-file-system '"${pkgname}"
git -C "${git_repo_path}" commit -m "${repo}/${pkgname}: ${old_pkgver} -> ${new_pkgver}"
if ! ${vm_is_running}; then
ssh arch32-test 'sudo poweroff'
err=$?
if [ ${err} -eq 255 ]; then
err=0
fi
exit ${err}
fi
|