From 3609018581077abdd88f16ece27a6699433dc69e Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Mon, 21 Dec 2009 23:49:22 +0000 Subject: Copy&paste setup.py from saccharin --- (limited to 'setup.py') 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() -- cgit v0.9.1