Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py58
1 files changed, 56 insertions, 2 deletions
diff --git a/setup.py b/setup.py
index 019d64e..3385287 100755
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
-#!/usr/bin/python
+#!/usr/bin/env python
-# Copyright (C) 2006, Red Hat, Inc.
+# Copyright (C) 2009, Aleksey Lim
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,5 +16,59 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+"""Convenient setup.py to bundle saccharin/0install to newly created .xo"""
+
+import os
+import shutil
+import subprocess
+from optparse import OptionParser
+
from sugar.activity import bundlebuilder
+
+
+def call(cmd):
+ if subprocess.call(cmd, shell=True) != 0:
+ raise Exception('Fail to execute "%s" command' % cmd)
+
+
+def fetch_saccharin():
+ if os.path.exists(spath):
+ # keep for moving back after failures
+ shutil.move(spath, spath + '~')
+
+ try:
+ call('git clone git://git.sugarlabs.org/saccharin/mainline.git ' \
+ '--branch production --depth 1 %s' % spath)
+ call('git clone ' \
+ 'git://git.sugarlabs.org/zeroinstall-injector/mainline.git ' \
+ '--branch xo --depth 1 %s' % zpath)
+ shutil.move(os.path.join(zpath, 'zeroinstall'), spath)
+ shutil.rmtree(zpath)
+ shutil.rmtree(os.path.join(spath, '.git'))
+ except Exception:
+ shutil.rmtree(spath, ignore_errors=True)
+ if os.path.exists(spath + '~'):
+ print 'Bundle previous saccharin.'
+ shutil.move(spath + '~', spath)
+ return
+ raise
+
+ shutil.rmtree(spath + '~', ignore_errors=True)
+ call('%s fix_manifest' % __file__)
+
+
+parser = OptionParser()
+parser.disable_interspersed_args()
+(_, args) = parser.parse_args()
+
+spath = os.path.join(os.path.dirname(__file__), 'saccharin')
+zpath = os.path.join(spath, 'zeroinstall-injector')
+
+if args and args[0] == 'fetch_saccharin':
+ fetch_saccharin()
+ exit(0)
+
+if args and args[0] == 'dist_xo' and not os.path.islink(spath):
+ fetch_saccharin()
+
bundlebuilder.start()