blob: 5ecd327f2b14ed45cad4fa75e0ba34252ae083f4 (
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
|
#!/bin/bash
repo_clean() {
git reset --hard
git clean -d -f -q -x
}
repo_update() {
git fetch origin
git fetch upstream
git checkout upstream
git merge upstream/master
git checkout master
git merge upstream
}
append_git_changelog() {
local range="${1}"
git log --no-merges --pretty=format:'[%h] %s (%an)' "${range}" |xargs -L 1 --no-run-if-empty dch
}
version_set() {
local upstream_version="$(git tag|grep ^v|tr -d v|sort -t . -n|tail -n 1)"
dch --newversion "${upstream_version}-git$(date +%Y%m%d)-1" --preserve --distribution testing "Nightly snapshot package"
append_git_changelog master^..master
git commit -m "Add changelog entry for nightly snapshot build" debian/changelog
}
gen_and_import_tarball() {
local package="${1}"
git checkout upstream
./autogen.sh
make dist-gzip
local version="$(grep '^VERSION = ' Makefile |sed -e 's/^VERSION = //')"
mv "${package}-${version}".tar.gz ../tarballs/"${package}-${version}~git$(date +%Y%m%d).tar.gz"
repo_clean
git-import-orig "${package}-${version}".tar.gz
}
autoregen() {
if [ -x autogen.sh ] ; then
./autogen.sh
else
grep -q IT_PROG_INTLTOOL configure.ac && intltoolize -c
autoreconf -i
automake
fi
if [ -n "$(git status --porcelain --untracked-files=no)" ] ; then
git commit -a -m "regenerate autofoo"
fi
}
build() {
git-buildpackage --git-builder="pdebuild --configfile ${MYDIR}/pbuilderrc --debbuildopts '-I.git -i\.git'" --git-cleaner="fakeroot debian/rules clean" --git-no-pristine-tar --git-export-dir=../build
}
upload_all() {
"${MYDIR}"/upload-snapshots
}
package_apply() {
local package="${1}"
shift
( set -e ; cd "${package}" ; "$@" )
}
MYDIR="$(readlink -f "$(dirname "${0}")")"
export COWBUILDERBASE="${MYDIR}/cowbuilder"
export DISTRIBUTION="$(tr -cd A-Za-z0-9._- < "${MYDIR}"/config.distro)"
for package in sugar sugar-artwork sugar-base sugar-datastore sugar-presence-service sugar-toolkit; do
#for package in sugar; do
(
set -e
package_apply "${package}" repo_clean
package_apply "${package}" repo_update
package_apply "${package}" autoregen
package_apply "${package}" version_set
package_apply "${package}" build
# package_apply "${package}" upload
)
done
upload_all
|