From: Mike Frysinger <vapier@gentoo.org>
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 [thread overview]
Message-ID: <1446097738-24624-1-git-send-email-vapier@gentoo.org> (raw)
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
next reply other threads:[~2015-10-29 5:49 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-29 5:48 Mike Frysinger [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-11-09 21:05 [gentoo-catalyst] [PATCH] catalyst: add a wrapper for executing directly out of git Mike Frysinger
2015-11-09 21:23 ` Mike Frysinger
2015-11-10 6:53 ` Brian Dolbec
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1446097738-24624-1-git-send-email-vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=gentoo-catalyst@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox