]> git.donarmstrong.com Git - neurodebian.git/blob - tools/nd_backport
Move args checks into each script.
[neurodebian.git] / tools / nd_backport
1 #!/bin/bash
2
3 family=$1
4 dist=$2
5
6 set -e
7
8 if [ -z "$family" ]; then
9   echo "You need to provide a distribution family ('debian', 'ubuntu'); prefix with 'nd+' to enable the NeuroDebian repository."
10   exit 1
11 fi
12
13 if [ -z "$dist" ]; then
14   echo "You need to provide a distribution codename (e.g. 'lenny', 'squeeze')."
15   exit 1
16 fi
17
18
19 set -e
20 set -u
21
22 if [ -z "$3" ]; then
23 cat << EOT
24 Script to backport a source package to some target release.
25
26 Synopsis
27 --------
28
29   nd_backport <family> <codename> <dsc file>
30
31 EOT
32 exit 1
33 fi
34
35 . /home/neurodebian/neurodebian.git/tools/nd_cmdsettings.sh
36
37 DEBEMAIL="pkg-exppsy-maintainers@lists.alioth.debian.org"
38 DEBFULLNAME="NeuroDebian Maintainers"
39 export DEBEMAIL DEBFULLNAME
40
41 dscfile=$3
42 srcname=${dscfile%%_*}
43 srcversion=${dscfile#*_}
44 srcversion=${srcversion%%.dsc}
45 wdir=$(mktemp -d -t nd_backport.XXXXXX)
46 sdir=$wdir/${srcname}-${srcversion}
47
48 echo "Source package name: $srcname"
49 echo "Source package version: $srcversion"
50 echo "Extracting source package to: $sdir"
51
52 dpkg-source -x $dscfile $sdir
53
54 echo "Backporting to: $family $dist"
55
56 changelog_entry="Backport of Debian package version $srcversion for \
57 NeuroDebian. Problems with the backport should be reported to the
58 NeuroDebian maintainers and not to the original Debian maintainer."
59
60 echo | debchange \
61          --noconf --force-bad-version \
62          -c $sdir/debian/changelog \
63          -D neurodebian \
64          -b -l "~${dist}.nd" \
65          $changelog_entry
66
67 dpkg-source -b $sdir
68
69 # cleanup
70 rm -rf $wdir