public inbox for gentoo-catalyst@lists.gentoo.org
 help / color / mirror / Atom feed
From: Brian Dolbec <dolsen@gentoo.org>
To: gentoo-catalyst@lists.gentoo.org
Subject: Re: [gentoo-catalyst] [PATCH] catalyst: add a wrapper for executing directly out of git
Date: Mon, 9 Nov 2015 22:53:45 -0800	[thread overview]
Message-ID: <20151109225345.5df4f6a5.dolsen@gentoo.org> (raw)
In-Reply-To: <1447103145-18905-1-git-send-email-vapier@gentoo.org>

On Mon,  9 Nov 2015 16:05:45 -0500
Mike Frysinger <vapier@gentoo.org> wrote:

> 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:])


huh, first time I looked at it, I missed seeing you were loading both
the main config and the temp config with the needed changes.

Looks good

-- 
Brian Dolbec <dolsen>



  parent reply	other threads:[~2015-11-10  6:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
  -- strict thread matches above, loose matches on Subject: below --
2015-10-29  5:48 Mike Frysinger

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=20151109225345.5df4f6a5.dolsen@gentoo.org \
    --to=dolsen@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