summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/Packaging/Debian/Testing/test-distr.sh')
-rw-r--r--Swift/Packaging/Debian/Testing/test-distr.sh88
1 files changed, 88 insertions, 0 deletions
diff --git a/Swift/Packaging/Debian/Testing/test-distr.sh b/Swift/Packaging/Debian/Testing/test-distr.sh
new file mode 100644
index 0000000..82d31ee
--- /dev/null
+++ b/Swift/Packaging/Debian/Testing/test-distr.sh
@@ -0,0 +1,88 @@
+#!/usr/bin/env bash
+
+# Return values
+# 0 if the package, source and installation were successful
+# 1 if the source packages are missing
+# 2 if the binary is not present in the repository
+# 3 if the binary and source packages are not present in the repository
+# 4 if the binary failed to install
+# 5 if the binary failed to install and the source package is not available.
+
+function finish {
+ rm /etc/apt/sources.list.d/swift-distr.list
+ if [[ "$1" != "*ubuntu*" ]]; then
+ rm /etc/apt/sources.list.d/ubuntu-universe.list
+ fi
+ {
+ rm -rf swift-im* packages.key*
+ apt-get remove -y swift-im
+ apt-get autoremove -y
+ } &>/dev/null
+}
+trap finish EXIT
+
+if [ "$#" -ne 4 ]; then
+ echo "Usage $0 <remote_repository> <dist_code_name> <swift_version> <release> "
+ exit 1
+fi
+RELEASE="$4"
+echo "Repository $1 build $RELEASE contents:"
+echo "------------------------"
+
+#Adding the swift repository
+echo deb $1 $RELEASE main >/etc/apt/sources.list.d/swift-distr.list
+echo deb-src $1 $RELEASE main >>/etc/apt/sources.list.d/swift-distr.list
+
+#Adding the ubuntu universe repository if it is not present.
+if [[ "$1" != "*ubuntu*" ]]; then
+ if ! grep -q '^deb http://archive.ubuntu.com/ubuntu '"$2"' universe' /etc/apt/sources.list /etc/apt/sources.list.d/*.list; then
+ echo deb http://archive.ubuntu.com/ubuntu $2 universe >/etc/apt/sources.list.d/ubuntu-universe.list
+ fi
+fi
+
+{
+ apt-get remove -y swift-im
+ apt-get autoremove -y
+ apt-get update
+ apt-get upgrade -y
+ apt-get install -y apt-transport-https wget
+ apt-get install -y dpkg-dev
+ wget http://swift.im/keys/packages.key
+ apt-key add packages.key
+ apt-get update
+} &>/dev/null
+
+RETURN_VALUE=0
+echo "Sources:"
+{
+ rm -rf swift-im*
+ apt-get source swift-im=$3
+} &>/dev/null
+if [ "$?" -eq 0 ]; then
+ echo "Sources files downloaded."
+else
+ echo "Sources files not present"
+ RETURN_VALUE=$((RETURN_VALUE + ((1 << 0))))
+fi
+
+echo "Binary:"
+{
+ apt-cache show swift-im=$3*
+} &>/dev/null
+if [ "$?" -ne 0 ]; then
+ echo "Swift package was not found in the repository."
+ RETURN_VALUE=$((RETURN_VALUE + ((1 << 1))))
+ exit $RETURN_VALUE
+fi
+echo "Installing binaries"
+{
+ apt-get install -y swift-im=$3*
+} &>/dev/null
+if [ "$?" -eq 0 ]; then
+ echo "Installation was successful."
+else
+ echo "Installation failed"
+ RETURN_VALUE=$((RETURN_VALUE + ((1 << 2))))
+fi
+echo "------------------------"
+exit $RETURN_VALUE