From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id B5DA513888F for ; Thu, 29 Oct 2015 05:49:09 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C1A1221C001; Thu, 29 Oct 2015 05:49:06 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2733021C001 for ; Thu, 29 Oct 2015 05:49:06 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 06D66340AF2 for ; Thu, 29 Oct 2015 05:49:02 +0000 (UTC) From: Mike Frysinger To: gentoo-catalyst@lists.gentoo.org Subject: [gentoo-catalyst] [PATCH] catalyst: add a wrapper for executing directly out of git Date: Thu, 29 Oct 2015 01:48:58 -0400 Message-Id: <1446097738-24624-1-git-send-email-vapier@gentoo.org> X-Mailer: git-send-email 2.5.2 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-catalyst@lists.gentoo.org Reply-to: gentoo-catalyst@lists.gentoo.org X-Archives-Salt: a4ea4f71-20d6-4ffd-b83b-20b88eac1de7 X-Archives-Hash: 59c0ba0f28cc7c0fdf6986d83a18381e This is a smaller wrapper to set up the environment (both python and some config options) so that all the code is used from the git repo. This way you don't have to install it in order to test things. --- bin/catalyst.git | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 bin/catalyst.git diff --git a/bin/catalyst.git b/bin/catalyst.git new file mode 100755 index 0000000..eb6234b --- /dev/null +++ b/bin/catalyst.git @@ -0,0 +1,52 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +"""Run catalyst from git using local modules/scripts.""" + +from __future__ import print_function + +import os +import sys +import tempfile + +from snakeoil import process + + +def main(argv): + """The main entry point""" + source_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + + pympath = source_root + pythonpath = os.environ.get('PYTHONPATH') + if pythonpath is None: + pythonpath = pympath + else: + pythonpath = pympath + ':' + pythonpath + os.environ['PYTHONPATH'] = pythonpath + + with tempfile.NamedTemporaryFile(prefix='catalyst.conf.') as conf: + # Set up a config file with paths to the local tree. + conf.write( + ('sharedir=%(source_root)s\n' + 'shdir=%(source_root)s/targets\n' + 'envscript=%(source_root)s/etc/catalystrc\n' + % {'source_root': source_root}).encode('utf8') + ) + conf.flush() + argv = [ + '--config', os.path.join(source_root, 'etc', 'catalyst.conf'), + '--config', conf.name, + ] + argv + + cmd = [os.path.join(source_root, 'bin', 'catalyst')] + pid = os.fork() + if pid == 0: + os.execvp(cmd[0], cmd + argv) + (_pid, status) = os.waitpid(pid, 0) + process.exit_as_status(status) + + +if __name__ == '__main__': + main(sys.argv[1:]) -- 2.5.2