← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~raoul-snyman/openlp/packaging-scripts into lp:openlp/packaging

 

Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/packaging-scripts into lp:openlp/packaging.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/packaging-scripts/+merge/261321

Add the build scripts from the server into the packaging repo
-- 
Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/packaging-scripts into lp:openlp/packaging.
=== added directory 'scripts'
=== added file 'scripts/backup_georss.sh'
--- scripts/backup_georss.sh	1970-01-01 00:00:00 +0000
+++ scripts/backup_georss.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+FILENAME=`date +%Y%m%d-%H%M%S`.rss
+BACKUPDIR=~/georss
+BACKUPDAYS=14
+
+# Delete files older than $BACKUPDAYS days ago
+find $BACKUPDIR -mtime $BACKUPDAYS -exec rm -f {} \;
+
+# Get the latest GeoRSS from our map
+wget -c -O $BACKUPDIR/$FILENAME 'http://maps.google.com/maps/ms?ie=UTF8&source=embed&msa=0&output=georss&msid=113314234297482809599.00047e88b1985e07ad495'
+

=== added file 'scripts/build_dev_deb.sh'
--- scripts/build_dev_deb.sh	1970-01-01 00:00:00 +0000
+++ scripts/build_dev_deb.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,46 @@
+#!/bin/bash
+###############################################################################
+# PPA Build Script for OpenLP                                                 #
+###############################################################################
+
+OPENLP_VERSION=$1
+RELEASE_NAME=$2
+PROJECT_DIR=$HOME/Projects/OpenLP
+UPLOADS_DIR=$PROJECT_DIR/Uploads
+PACKAGING_DIR=$HOME/Packaging
+UBUNTU_DIR=$PACKAGING_DIR/debian-package
+TARGT_TARBALL=$PACKAGING_DIR/Tarballs/openlp_${OPENLP_VERSION}.orig.tar.gz
+
+export DEBFULLNAME="Raoul Snyman"
+export DEBEMAIL="raoul@xxxxxxxxxxx"
+
+echo -n "Copying source tarball..."
+cd $UPLOADS_DIR
+if [[ ! -f "$UPLOADS_DIR/OpenLP-${OPENLP_VERSION}.tar.gz" ]]; then
+	echo "$UPLOADS_DIR/OpenLP-${OPENLP_VERSION}.tar.gz NOT FOUND, exiting."
+	exit 1
+fi
+cp $UPLOADS_DIR/OpenLP-${OPENLP_VERSION}.tar.gz $TARGT_TARBALL
+echo done.
+echo -n "Backing up changelog..."
+cd $UBUNTU_DIR
+cp $UBUNTU_DIR/debian/changelog $PACKAGING_DIR/changelog.bak
+echo done.
+echo "Building package..."
+dch --force-distribution -D $RELEASE_NAME -v $OPENLP_VERSION-0ubuntu1~${RELEASE_NAME}1 Autobuild
+bzr bd --builder='debuild -S -m"Raoul Snyman <raoulsnyman@xxxxxxxxxx>"' --orig-dir="$PACKAGING_DIR/Tarballs" --build-dir="$PACKAGING_DIR/Builds"
+if [[ $? -ne 0 ]]; then
+	echo "Failed to build package, exiting..."
+	exit 1
+fi
+echo "Uploading package source..."
+cd $PACKAGING_DIR/Builds
+dput openlp-dev openlp_$OPENLP_VERSION-0ubuntu1~${RELEASE_NAME}1_source.changes
+echo -n "Removing generated files..."
+rm $PACKAGING_DIR/Tarballs/*
+rm -r $PACKAGING_DIR/Builds/*
+echo done.
+echo -n "Restoring changelog..."
+cd $UBUNTU_DIR
+cp $PACKAGING_DIR/changelog.bak $UBUNTU_DIR/debian/changelog
+echo "done."

=== added file 'scripts/build_docs.sh'
--- scripts/build_docs.sh	1970-01-01 00:00:00 +0000
+++ scripts/build_docs.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+DOCSTYPE=$1
+OLD_PATH=$PATH
+PATH=/usr/local/bin:$PATH
+
+if [[ "$DOCSTYPE" == "api" ]]; then
+    DOCSTITLE="API"
+    DOCSDIR="api"
+    TARBALL="docs"
+else
+    if [[ "$DOCSTYPE" == "manual" ]]; then
+        DOCSTITLE="Manual"
+        DOCSDIR="manual"
+        TARBALL="manual"
+    else
+        DOCSTITLE="User Guide"
+        DOCSDIR="user-guide"
+        TARBALL="user-guide"
+    fi
+fi
+
+echo "Building $DOCSTITLE documentation..."
+cd /home/openlp/Projects/documentation/trunk
+bzr up
+cd $DOCSDIR
+echo $DOCSDIR
+pwd
+rm -fR build
+make html
+echo "Creating tarball..."
+cd build
+cp -R html $TARBALL
+tar -czvf ${TARBALL}.tar.gz $TARBALL
+echo "Uploading tarball..."
+scp ${TARBALL}.tar.gz openlp@xxxxxxxxxx:public_html/
+ssh openlp@xxxxxxxxxx "cd ~/public_html && tar -xzvf ${TARBALL}.tar.gz"
+echo "Finished $DOCSTITLE run."
+PATH=$OLD_PATH

=== added file 'scripts/build_nightly_deb.sh'
--- scripts/build_nightly_deb.sh	1970-01-01 00:00:00 +0000
+++ scripts/build_nightly_deb.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,47 @@
+#!/bin/bash
+###############################################################################
+# PPA Build Script for OpenLP                                                 #
+###############################################################################
+
+RELEASE_NAME=$1
+PROJECT_DIR=$HOME/Projects/OpenLP
+SOURCE_DIR=$PROJECT_DIR/trunk
+UPLOADS_DIR=$PROJECT_DIR/Uploads
+OPENLP_VERSION=`~/bin/openlp_version.py $SOURCE_DIR`
+PACKAGING_DIR=$HOME/Packaging
+UBUNTU_DIR=$PACKAGING_DIR/debian-package
+TARGT_TARBALL=$PACKAGING_DIR/Tarballs/openlp_${OPENLP_VERSION}.orig.tar.gz
+
+export DEBFULLNAME="Raoul Snyman"
+export DEBEMAIL="raoul@xxxxxxxxxxx"
+
+echo -n "Copying source tarball..."
+cd $UPLOADS_DIR
+if [[ ! -f "$UPLOADS_DIR/OpenLP-${OPENLP_VERSION}.tar.gz" ]]; then
+	echo "$UPLOADS_DIR/OpenLP-${OPENLP_VERSION}.tar.gz NOT FOUND, exiting."
+	exit 1
+fi
+cp $UPLOADS_DIR/OpenLP-${OPENLP_VERSION}.tar.gz $TARGT_TARBALL
+echo done.
+echo -n "Backing up changelog..."
+cd $UBUNTU_DIR
+cp $UBUNTU_DIR/debian/changelog $PACKAGING_DIR/changelog.bak
+echo done.
+echo "Building package..."
+dch --force-distribution -D $RELEASE_NAME -v $OPENLP_VERSION-0ubuntu1~${RELEASE_NAME}1 Autobuild
+bzr bd --builder='debuild -S -m"Raoul Snyman <raoulsnyman@xxxxxxxxxx>"' --orig-dir="$PACKAGING_DIR/Tarballs" --build-dir="$PACKAGING_DIR/Builds"
+if [[ $? -ne 0 ]]; then
+	echo "Failed to build package, exiting..."
+	exit 1
+fi
+echo "Uploading package source..."
+cd $PACKAGING_DIR/Builds
+dput openlp-nightly openlp_$OPENLP_VERSION-0ubuntu1~${RELEASE_NAME}1_source.changes
+#echo -n "Removing generated files..."
+rm $PACKAGING_DIR/Tarballs/*
+rm -r $PACKAGING_DIR/Builds/*
+#echo done.
+echo -n "Restoring changelog..."
+cd $UBUNTU_DIR
+cp $PACKAGING_DIR/changelog.bak $UBUNTU_DIR/debian/changelog
+echo "done."

=== added file 'scripts/build_release_deb.sh'
--- scripts/build_release_deb.sh	1970-01-01 00:00:00 +0000
+++ scripts/build_release_deb.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,19 @@
+#!/bin/bash
+###############################################################################
+# Debian Build Script for OpenLP                                              #
+###############################################################################
+DEB_VERSION=$1
+RELEASE_NAME=$2
+export RELEASE_NAME
+ROOT_DIR=~/Projects/OpenLP
+SDIST_TARBALL=$ROOT_DIR/release-${DEB_VERSION}/dist/OpenLP-$DEB_VERSION.tar.gz
+TARGT_TARBALL=$ROOT_DIR/tarballs/openlp_$DEB_VERSION.orig.tar.gz
+echo "Copying $SDIST_TARBALL to $TARGT_TARBALL"
+cp $SDIST_TARBALL $TARGT_TARBALL
+cd $ROOT_DIR/debian-package
+dch --force-distribution -D $RELEASE_NAME -v $DEB_VERSION-0ubuntu1~${RELEASE_NAME}1 Autobuild -b
+bzr bd --builder='debuild -S -sa -m"Raoul Snyman <raoul.snyman@xxxxxxxxxxxxxxxxxxxxxxxx>"' --orig-dir="$ROOT_DIR/tarballs"
+cd $ROOT_DIR/build-area
+dput openlp-release openlp_$DEB_VERSION-0ubuntu1~${RELEASE_NAME}1_source.changes
+cd $ROOT_DIR/debian-package
+bzr revert

=== added file 'scripts/deb_version.py'
--- scripts/deb_version.py	1970-01-01 00:00:00 +0000
+++ scripts/deb_version.py	2015-06-06 23:14:27 +0000
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+from bzrlib.branch import Branch
+from natsort import nsorted
+
+b = Branch.open_containing('.')[0]
+b.lock_read()
+try:
+    # Get the branch's latest revision number.
+    revno = b.revno()
+    # Convert said revision number into a bzr revision id.
+    revision_id = b.dotted_revno_to_revision_id((revno,))
+    # Get a dict of tags, with the revision id as the key.
+    tags = b.tags.get_reverse_tag_dict()
+    # Check if the latest
+    if revision_id in tags:
+        print tags[revision_id][0]
+    else:
+        print '%s+bzr%s' % (nsorted(b.tags.get_tag_dict().keys())[-1], revno)
+finally:
+    b.unlock()

=== added file 'scripts/dev_build.sh'
--- scripts/dev_build.sh	1970-01-01 00:00:00 +0000
+++ scripts/dev_build.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+VERSION=$1
+PROJECTS_DIR=/home/openlp/Projects
+SOURCE_DIR=$PROJECTS_DIR/OpenLP/trunk
+RELEASE_DIR=release-$VERSION
+UPLOADS_DIR=/home/openlp/Projects/OpenLP/Uploads
+FILENAME=OpenLP-$VERSION.tar.gz
+#TSDIR=$RELEASE/resources/i18n
+#QMDIR=$RELEASE/openlp/i18n
+
+echo Starting the OpenLP Development Build Script
+echo --------------------------------------------
+echo -ne "Updating trunk...\r"
+cd $SOURCE_DIR
+bzr update -q
+echo "Updating trunk...done."
+echo -ne "Branching release tag (${VERSION})...\r"
+cd ..
+bzr branch trunk $RELEASE_DIR -r tag:$VERSION -q
+echo "Branching release tag (${VERSION})...done."
+echo -n "Creating source distribution..."
+cd /home/openlp/Projects/OpenLP/$RELEASE_DIR
+python setup.py sdist
+echo "done."
+echo -n "Copying release tarball..."
+cp dist/$FILENAME $UPLOADS_DIR/
+echo "done."
+echo -n "Updating Version File..."
+echo "$VERSION" > dev_version.txt
+scp dev_version.txt openlp@xxxxxxxxxx:public_html/files/dev_version.txt
+rm dev_version.txt
+echo "Building sources for PPA..."
+~/bin/build_dev_deb.sh $VERSION trusty
+~/bin/build_dev_deb.sh $VERSION utopic
+~/bin/build_dev_deb.sh $VERSION vivid
+echo -n "Cleaning up..."
+cd /home/openlp/Projects/OpenLP
+rm -r $RELEASE_DIR
+echo "done."
+echo --------------------------------------------
+echo Finished the OpenLP Development Build Script

=== added file 'scripts/fix_bzr.py'
--- scripts/fix_bzr.py	1970-01-01 00:00:00 +0000
+++ scripts/fix_bzr.py	2015-06-06 23:14:27 +0000
@@ -0,0 +1,11 @@
+#!/usr/bin/python
+
+import sys
+
+from bzrlib import initialize
+from bzrlib.plugin import load_plugins
+from bzrlib.upgrade import Convert
+
+initialize()
+load_plugins()
+Convert(sys.argv[1])

=== added file 'scripts/natsort.py'
--- scripts/natsort.py	1970-01-01 00:00:00 +0000
+++ scripts/natsort.py	2015-06-06 23:14:27 +0000
@@ -0,0 +1,35 @@
+# ---------------------------------------------------------
+# natsort.py: Natural string sorting.
+# ---------------------------------------------------------
+
+# By Seo Sanghyeon.  Some changes by Connelly Barnes.
+
+def try_int(s):
+    "Convert to integer if possible."
+    try: return int(s)
+    except: return s
+
+def natsort_key(s):
+    "Used internally to get a tuple by which s is sorted."
+    import re
+    return map(try_int, re.findall(r'(\d+|\D+)', s))
+
+def natcmp(a, b):
+    "Natural string comparison, case sensitive."
+    return cmp(natsort_key(a), natsort_key(b))
+
+def natcasecmp(a, b):
+    "Natural string comparison, ignores case."
+    return natcmp(a.lower(), b.lower())
+
+def natsort(seq, cmp=natcmp):
+    "In-place natural string sort."
+    seq.sort(cmp)
+    
+def natsorted(seq, cmp=natcmp):
+    "Returns a copy of seq, sorted by natural string sort."
+    import copy
+    temp = copy.copy(seq)
+    natsort(temp, cmp)
+    return temp
+

=== added file 'scripts/nightly_build.sh'
--- scripts/nightly_build.sh	1970-01-01 00:00:00 +0000
+++ scripts/nightly_build.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,78 @@
+#!/bin/bash
+###############################################################################
+# Nightly Build Script for OpenLP                                             #
+###############################################################################
+
+REGEX='OpenLP-([0-9]\.[0-9]\.[0-9])-bzr([0-9]+)[.|-]'
+PROJECT_DIR=/home/openlp/Projects/OpenLP
+SOURCE_DIR=$PROJECT_DIR/trunk
+VERSION_FILE=$SOURCE_DIR/openlp/.version
+PACKAGING_DIR=/home/openlp/Packaging
+UPLOADS_DIR=$PROJECT_DIR/Uploads
+
+echo Starting the OpenLP 2.2 Nightly Build Script
+echo --------------------------------------------
+echo -ne "Updating code...\r"
+cd $SOURCE_DIR
+bzr update -q
+echo "Updating code...done."
+
+# We can't get the version number until after updating the code
+# otherwise the version number we get is out-of-date
+OPENLP_VERSION=`~/bin/openlp_version.py $SOURCE_DIR`
+UPLOAD_TARBALL=OpenLP-${OPENLP_VERSION}.tar.gz
+PACKAGE_TARBALL=$PACKAGING_DIR/Tarballs/openlp_${OPENLP_VERSION}.orig.tar.gz
+
+echo -n "Checking revision..."
+if [[ -f "$VERSION_FILE" && "`bzr revno`" -eq "`cat $VERSION_FILE`" ]]; then
+    echo done.
+    echo OpenLP is already at the latest revision, aborting build.
+    echo --------------------------------------------
+    echo Finished OpenLP 2.2 Nightly Build Script
+    exit
+fi
+echo done.
+echo -n "Writing version number..."
+bzr revno > $VERSION_FILE
+echo done.
+echo -n "Exporting source for $OPENLP_VERSION ..."
+if [[ -d "../OpenLP-$OPENLP_VERSION" ]]; then
+	rm -r ../OpenLP-$OPENLP_VERSION
+fi
+bzr export ../OpenLP-$OPENLP_VERSION
+echo done.
+echo -n "Creating source tarball $UPLOADS_DIR/$UPLOAD_TARBALL ..."
+cd $PROJECT_DIR
+tar -czf $UPLOADS_DIR/$UPLOAD_TARBALL OpenLP-$OPENLP_VERSION
+echo done.
+echo -n "Uploading tarball to download location..."
+cd $UPLOADS_DIR
+scp -q $UPLOADS_DIR/$UPLOAD_TARBALL openlp@xxxxxxxxxx:public_html/files/
+ssh -q openlp@xxxxxxxxxx "python update_builds.py source $UPLOAD_TARBALL"
+echo done.
+echo -n "Updating Version File..."
+echo "$VERSION" > nightly_version.txt
+scp -q nightly_version.txt openlp@xxxxxxxxxx:public_html/files/nightly_version.txt
+rm nightly_version.txt
+echo done.
+echo -n "Notifying Twitter..."
+if [[ $UPLOAD_TARBALL =~ $REGEX ]]; then
+        VERSION_STRING="version ${BASH_REMATCH[1]}, build ${BASH_REMATCH[2]}"
+else
+	VERSION_STRING="version ${OPENLP_VERSION}"
+fi
+~/bin/openlp_tweeter.py openlp_dev "Latest nightly source tarball of OpenLP 2.2 available at http://openlp.org/files/latest.tar.gz - ${VERSION_STRING}."
+echo done.
+echo Building sources for PPA...
+~/bin/build_nightly_deb.sh trusty
+~/bin/build_nightly_deb.sh utopic
+~/bin/build_nightly_deb.sh vivid
+echo -n "Notifying Twitter..."
+~/bin/openlp_tweeter.py openlp_dev "Latest Ubuntu nightly package of OpenLP 2.2 queued for building in the Nightly PPA (ppa:openlp-core/nightly) - ${VERSION_STRING}."
+echo done.
+echo -n "Cleaning up..."
+rm -r $UPLOADS_DIR/*
+rm $PACKAGE_TARBALL
+echo done.
+echo --------------------------------------------
+echo Finished OpenLP 2.2 Nightly Build Script

=== added file 'scripts/notify_build.sh'
--- scripts/notify_build.sh	1970-01-01 00:00:00 +0000
+++ scripts/notify_build.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+if [ $# -lt 2 ]
+then
+  echo "Usage: `basename $0` {filename} {windows|osx|portable} [delete]"
+  exit 5
+fi
+
+FILENAME=$1
+BASEFILE=`basename $FILENAME`
+BUILDTYPE=$2
+REGEX='(OpenLP-|OpenLPPortable_)([0-9]\.[0-9]\.[0-9]+)(-bzr|\.)([0-9]+)[.|-]'
+
+if [ $# -eq 3 -a "$3" == "delete" ]; then
+    AUTODELETE=1
+else
+    AUTODELETE=0
+fi
+
+if [ "${BUILDTYPE}x" == "x" ]; then
+    $BUILDTYPE=windows
+fi
+if [[ $BASEFILE =~ $REGEX ]]; then
+    if [ "$BUILDTYPE" == "windows" ]; then
+        PLATFORM="Windows"
+        EXT=".exe"
+    elif [ "$BUILDTYPE" == "osx" ]; then
+        PLATFORM="Mac OS X"
+        EXT=".dmg"
+    elif [ "$BUILDTYPE" == "portable" ]; then
+        PLATFORM="PortableApps"
+        EXT="-portable.exe"
+    fi
+    echo "Notifying Twitter..."
+    /home/openlp/bin/openlp_tweeter.py openlp_dev "Latest $PLATFORM development build of OpenLP 2.0 available at http://openlp.org/files/latest$EXT - version ${BASH_REMATCH[2]} build ${BASH_REMATCH[4]}."
+    if [ $? -ne 0 ]; then
+        exit 4
+    fi
+fi
+

=== added file 'scripts/openlp_tweeter.py'
--- scripts/openlp_tweeter.py	1970-01-01 00:00:00 +0000
+++ scripts/openlp_tweeter.py	2015-06-06 23:14:27 +0000
@@ -0,0 +1,42 @@
+#!/home/openlp/VirtualEnv/stats/bin/python
+ 
+import sys
+import tweepy
+
+CONSUMER_KEY = 'MYPnldPBzlbueaSvD1rnw'
+CONSUMER_SECRET = 'yyDJ4TTADxv7MELAju0dtrNSEGnKa88zplDFoPiw'
+AUTH_TOKENS = {
+    'openlp_dev': {
+        'key': '703540082-qTYyENzdhoDNMDP9kc95BL0yd98rz0EaVRiirya4',
+        'secret': 'sm9uSck8yoXUBvPkPT3fISiM5Z46KREskgmxTZ8B0'
+    },
+    'openlp': {
+        'key': '72314330-rUzaA2hRQAaEum6KIhFnOWNUPFqt1nkwgIC0ZS7IG',
+        'secret': 'UGMGO6oAcjHKADM8TZnMAos5cK11HL1Jd7CTQVWpJc8'
+    }
+}
+
+ACCESS_KEY = '72314330-rUzaA2hRQAaEum6KIhFnOWNUPFqt1nkwgIC0ZS7IG'
+ACCESS_SECRET = 'UGMGO6oAcjHKADM8TZnMAos5cK11HL1Jd7CTQVWpJc8'
+
+if __name__ == u'__main__':
+    # Don't bother to do anything if there's nothing to tweet.
+    if len(sys.argv) == 1:
+        print 'Nothing to tweet!'
+        sys.exit(1)
+    try:
+        if len(sys.argv) == 2:
+            account = 'openlp_dev'
+            message = sys.argv[1]
+        else:
+            account = sys.argv[1]
+            message = sys.argv[2]
+        auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
+        auth.set_access_token(AUTH_TOKENS[account]['key'], AUTH_TOKENS[account]['secret'])
+        api = tweepy.API(auth)
+        api.update_status(message)
+        print 'Successfully sent tweet.'
+        sys.exit()
+    except tweepy.error.TweepError as error:
+        print error
+        sys.exit(2)

=== added file 'scripts/openlp_version.py'
--- scripts/openlp_version.py	1970-01-01 00:00:00 +0000
+++ scripts/openlp_version.py	2015-06-06 23:14:27 +0000
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import sys
+import os
+
+from bzrlib.branch import Branch
+from natsort import natsorted
+
+def get_version(path):
+    b = Branch.open_containing(path)[0]
+    b.lock_read()
+    result = '0.0.0'
+    try:
+        # Get the branch's latest revision number.
+        revno = b.revno()
+        # Convert said revision number into a bzr revision id.
+        revision_id = b.dotted_revno_to_revision_id((revno,))
+        # Get a dict of tags, with the revision id as the key.
+        tags = b.tags.get_reverse_tag_dict()
+        # Check if the latest
+        if revision_id in tags:
+            result = tags[revision_id][0]
+        else:
+            result = '%s-bzr%s' % (natsorted(b.tags.get_tag_dict().keys())[-1], revno)
+    finally:
+        b.unlock()
+        return result
+
+def get_path():
+    if len(sys.argv) > 1:
+        return os.path.abspath(sys.argv[1])
+    else:
+        return os.path.abspath('.')
+
+if __name__ == u'__main__':
+    path = get_path()
+    print get_version(path)
+

=== added file 'scripts/openlptweet.py'
--- scripts/openlptweet.py	1970-01-01 00:00:00 +0000
+++ scripts/openlptweet.py	2015-06-06 23:14:27 +0000
@@ -0,0 +1,30 @@
+#! /usr/bin/python
+# -*- coding: utf-8 -*-
+
+from optparse import OptionParser
+
+from twitter import Api, Status
+
+def main():
+    parser = OptionParser()
+    #parser.add_option("-m", "--message", dest="message", metavar="MESSAGE",
+    #                  help="Status message to post to Twitter", metavar="MESSAGE")
+    parser.add_option("-u", "--username", dest="username", metavar="USERNAME",
+                      help="The username to post as, required for authentication.")
+    parser.add_option("-p", "--password", dest="password", metavar="PASSWORD",
+                      help="The password for the username, required for authentication.")
+    (options, args) = parser.parse_args()
+    if len(args) == 0:
+        parser.error("You haven't provided a message.")
+    if not options.username or not options.password:
+        parser.error("You need to supply a username and a password.")
+    message = args[0]
+    api = Api(username=options.username, password=options.password)
+    status = api.PostUpdate(message)
+    if not status:
+        print "There was a problem posting your status."
+    else:
+        print "Successfully posted your status!"
+
+if __name__ == "__main__":
+    main()

=== added file 'scripts/release_build.sh'
--- scripts/release_build.sh	1970-01-01 00:00:00 +0000
+++ scripts/release_build.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+VERSION=$1
+RELEASE=release-$VERSION
+FILENAME=OpenLP-$VERSION.tar.gz
+#TSDIR=$RELEASE/resources/i18n
+#QMDIR=$RELEASE/openlp/i18n
+
+echo Starting the OpenLP 2.0 Release Build Script
+echo --------------------------------------------
+echo -ne "Updating trunk-2.0...\r"
+cd /home/openlp/Projects/OpenLP/trunk-2.0
+bzr update -q
+echo "Updating trunk-2.0...done."
+echo -ne "Branching release tag...\r"
+cd /home/openlp/Projects/OpenLP
+bzr branch trunk-2.0 $RELEASE -r tag:$VERSION -q
+echo "Branching release tag...done."
+echo -n "Creating source distribution..."
+cd /home/openlp/Projects/OpenLP/$RELEASE
+python setup.py sdist
+echo "done."
+#echo -n "Updating Version File..."
+#echo "$VERSION" > version.txt
+#scp version.txt openlp@xxxxxxxxxx:public_html/files/version.txt
+#rm version.txt
+echo "Building sources for PPA..."
+~/bin/build_release_deb.sh $VERSION utopic
+echo -n "Cleaning up..."
+cd /home/openlp/Projects/OpenLP
+rm -fR $RELEASE
+echo "done."
+echo --------------------------------------------
+echo Finished OpenLP 2.0 Release Build Script

=== added file 'scripts/upload_build.sh'
--- scripts/upload_build.sh	1970-01-01 00:00:00 +0000
+++ scripts/upload_build.sh	2015-06-06 23:14:27 +0000
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+if [ $# -lt 2 ]
+then
+  echo "Usage: `basename $0` {filename} {windows|osx|portable} [delete]"
+  exit 5
+fi
+
+FILENAME=$1
+BASEFILE=`basename $FILENAME`
+BUILDTYPE=$2
+REGEX='(OpenLP-|OpenLPPortable_)([0-9]\.[0-9]\.[0-9]+)(-bzr|\.)([0-9]+)[.|-]'
+
+if [ $# -eq 3 -a "$3" == "delete" ]; then
+    AUTODELETE=1
+else
+    AUTODELETE=0
+fi
+
+if [ ! -f $FILENAME ]; then
+    echo "$FILENAME does not exist, exiting."
+    exit 1
+fi
+if [ "${BUILDTYPE}x" == "x" ]; then
+    $BUILDTYPE=windows
+fi
+echo "Uploading file..."
+scp $FILENAME openlp@xxxxxxxxxx:public_html/files/
+if [ $? -ne 0 ]; then
+    echo "Failed to upload ${FILENAME}."
+    exit 2
+fi
+echo "Updating build information on server..."
+ssh openlp@xxxxxxxxxx "python update_builds.py $BUILDTYPE $BASEFILE"
+if [ $? -ne 0 ]; then
+    echo "Failed to update build ${BUILDTYPE} ${BASEFILE}."
+    exit 3
+fi
+if [ $AUTODELETE -eq 1 ]; then
+    rm $FILENAME
+fi
+if [[ $BASEFILE =~ $REGEX ]]; then
+    if [ "$BUILDTYPE" == "windows" ]; then
+        PLATFORM="Windows"
+        EXT=".exe"
+    elif [ "$BUILDTYPE" == "osx" ]; then
+        PLATFORM="Mac OS X"
+        EXT=".dmg"
+    elif [ "$BUILDTYPE" == "portable" ]; then
+        PLATFORM="PortableApps"
+        EXT="-portable.exe"
+    fi
+    echo "Notifying Twitter..."
+    /home/openlp/bin/openlp_tweeter.py openlp_dev "Latest $PLATFORM development build of OpenLP 2.2 available at http://openlp.org/files/latest$EXT - version ${BASH_REMATCH[2]} build ${BASH_REMATCH[4]}."
+    if [ $? -ne 0 ]; then
+        exit 4
+    fi
+fi
+


Follow ups