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 3/3] main: convert to new logging module
Date: Fri, 9 Oct 2015 09:32:40 -0700	[thread overview]
Message-ID: <20151009093240.0f258eea.dolsen@gentoo.org> (raw)
In-Reply-To: <1444370248-13159-3-git-send-email-vapier@gentoo.org>

On Fri,  9 Oct 2015 01:57:28 -0400
Mike Frysinger <vapier@gentoo.org> wrote:

> ---
>  catalyst/main.py | 104
> +++++++++++++++++++++++-------------------------------- 1 file
> changed, 43 insertions(+), 61 deletions(-)
> 
> diff --git a/catalyst/main.py b/catalyst/main.py
> index c9a2219..bc77c59 100644
> --- a/catalyst/main.py
> +++ b/catalyst/main.py
> @@ -7,6 +7,7 @@
>  # $Id$
>  
>  import argparse
> +import datetime
>  import os
>  import sys
>  
> @@ -31,36 +32,36 @@ conf_values={}
>  
>  
>  def version():
> -	print get_version()
> -	print "Copyright 2003-2008 Gentoo Foundation"
> -	print "Copyright 2008-2012 various authors"
> -	print "Distributed under the GNU General Public License
> version 2.1\n"
> +	log.info(get_version())
> +	log.info('Copyright 2003-%s Gentoo Foundation',
> datetime.datetime.now().year)
> +	log.info('Copyright 2008-2012 various authors')
> +	log.info('Distributed under the GNU General Public License
> version 2.1') 
>  def parse_config(myconfig):
>  	# search a couple of different areas for the main config file
>  	myconf={}
>  	config_file=""
> +	default_config_file = '/etc/catalyst/catalyst.conf'
>  
>  	# first, try the one passed (presumably from the cmdline)
>  	if myconfig:
>  		if os.path.exists(myconfig):
> -			print "Using command line specified Catalyst
> configuration file, "+myconfig
> +			log.notice('Using command line specified
> Catalyst configuration file: %s',
> +				myconfig)
>  			config_file=myconfig
>  
>  		else:
> -			print "!!! catalyst: Could not use specified
> configuration file "+\
> -				myconfig
> -			sys.exit(1)
> +			log.critical('Specified configuration file
> does not exist: %s', myconfig) 
>  	# next, try the default location
> -	elif os.path.exists("/etc/catalyst/catalyst.conf"):
> -		print "Using default Catalyst configuration
> file, /etc/catalyst/catalyst.conf"
> -		config_file="/etc/catalyst/catalyst.conf"
> +	elif os.path.exists(default_config_file):
> +		log.notice('Using default Catalyst configuration
> file: %s',
> +			default_config_file)
> +		config_file = default_config_file
>  
>  	# can't find a config file (we are screwed), so bail out
>  	else:
> -		print "!!! catalyst: Could not find a suitable
> configuration file"
> -		sys.exit(1)
> +		log.critical('Could not find a suitable
> configuration file') 
>  	# now, try and parse the config file "config_file"
>  	try:
> @@ -69,8 +70,7 @@ def parse_config(myconfig):
>  		myconf.update(myconfig.get_values())
>  
>  	except Exception:
> -		print "!!! catalyst: Unable to parse configuration
> file, "+myconfig
> -		sys.exit(1)
> +		log.critical('Could not find parse configuration
> file: %s', myconfig) 
>  	# now, load up the values into conf_values so that we can
> use them for x in list(confdefaults):
> @@ -90,7 +90,7 @@ def parse_config(myconfig):
>  	# print out any options messages
>  	for opt in conf_values['options']:
>  		if opt in option_messages:
> -			print option_messages[opt]
> +			log.info(option_messages[opt])
>  
>  	for key in ["digests", "envscript", "var_tmpfs_portage",
> "port_logdir", "local_overlay"]:
> @@ -102,7 +102,7 @@ def parse_config(myconfig):
>  		conf_values["contents"] =
> myconf["contents"].replace("-", '_') 
>  	if "envscript" in myconf:
> -		print "Envscript support enabled."
> +		log.info('Envscript support enabled.')
>  
>  	# take care of any variable substitutions that may be left
>  	for x in list(conf_values):
> @@ -118,11 +118,8 @@ def import_module(target):
>  	try:
>  		mod_name = "catalyst.targets." + target
>  		module = __import__(mod_name, [],[], ["not empty"])
> -	except ImportError as e:
> -		print "!!! catalyst: Python module import error: %s
> " % target + \
> -			"in catalyst/targets/ ... exiting."
> -		print "ERROR was: ", e
> -		sys.exit(1)
> +	except ImportError:
> +		log.critical('Python module import error: %s',
> target, exc_info=True) return module
>  
>  
> @@ -278,7 +275,7 @@ def main():
>  	parse_config(myconfig)
>  
>  	conf_values["options"].update(options)
> -	#print "MAIN: conf_values['options'] =",
> conf_values["options"]
> +	log.debug('conf_values[options] = %s',
> conf_values['options']) 
>  	# initialize our contents generator
>  	contents_map = ContentsMap(CONTENTS_DEFINITIONS)
> @@ -308,14 +305,13 @@ def main():
>  
>  		# First validate all the requested digests are valid
> keys. if digests - valid_digests:
> -			print
> -			print "These are not a valid digest entries:"
> -			print ', '.join(digests - valid_digests)
> -			print "Valid digest entries:"
> -			print ', '.join(sorted(valid_digests))
> -			print
> -			print "Catalyst aborting...."
> -			sys.exit(2)
> +			log.critical(
> +				'These are not valid digest
> entries:\n'
> +				'%s\n'
> +				'Valid digest entries:\n'
> +				'%s',
> +				', '.join(digests - valid_digests),
> +				', '.join(sorted(valid_digests)))
>  
>  		# Then check for any programs that the hash func
> requires. for digest in digests:
> @@ -326,37 +322,28 @@ def main():
>  				if skip_missing:
>  					digests.remove(digest)
>  					continue
> -				print
> -				print "digest=" + digest
> -				print "\tThe " +
> hash_map.hash_map[digest].cmd + \
> -					" binary was not found. It
> needs to be in your system path"
> -				print
> -				print "Catalyst aborting...."
> -				sys.exit(2)
> +				log.critical(
> +					'The "%s" binary needed by
> digest "%s" was not found. '
> +					'It needs to be in your
> system path.',
> +
> hash_map.hash_map[digest].cmd, digest) 
>  		# Now reload the config with our updated value.
>  		conf_values['digests'] = ' '.join(digests)
>  
>  	if "hash_function" in conf_values:
>  		if conf_values["hash_function"] not in
> HASH_DEFINITIONS:
> -			print
> -			print conf_values["hash_function"]+\
> -				" is not a valid hash_function entry"
> -			print "Valid hash_function entries:"
> -			print HASH_DEFINITIONS.keys()
> -			print
> -			print "Catalyst aborting...."
> -			sys.exit(2)
> +			log.critical(
> +				'%s is not a valid hash_function
> entry\n'
> +				'Valid hash_function entries:\n'
> +				'%s', HASH_DEFINITIONS.keys())
>  		try:
>  			process.find_binary(hash_map.hash_map[conf_values["hash_function"]].cmd)
>  		except process.CommandNotFound:
> -			print
> -			print
> "hash_function="+conf_values["hash_function"]
> -			print "\tThe
> "+hash_map.hash_map[conf_values["hash_function"]].cmd + \
> -				" binary was not found. It needs to
> be in your system path"
> -			print
> -			print "Catalyst aborting...."
> -			sys.exit(2)
> +			log.critical(
> +				'The "%s" binary needed by
> hash_function "%s" was not found. '
> +				'It needs to be in your system
> path.',
> +
> hash_map.hash_map[conf_values['hash_function']].cmd,
> +				conf_values['hash_function'])
>  
>  	addlargs={}
>  
> @@ -370,25 +357,20 @@ def main():
>  			cmdline.parse_lines(mycmdline)
>  			addlargs.update(cmdline.get_values())
>  		except CatalystError:
> -			print "!!! catalyst: Could not parse
> commandline, exiting."
> -			sys.exit(1)
> +			log.critical('Could not parse commandline')
>  
>  	if "target" not in addlargs:
>  		raise CatalystError("Required value \"target\" not
> specified.") 
>  	if os.getuid() != 0:
>  		# catalyst cannot be run as a normal user due to
> chroots, mounts, etc
> -		print "!!! catalyst: This script requires root
> privileges to operate"
> -		sys.exit(2)
> +		log.critical('This script requires root privileges
> to operate') 
>  	# everything is setup, so the build is a go
>  	try:
>  		success = build_target(addlargs)
>  	except KeyboardInterrupt:
> -		print "\nCatalyst build aborted due to user
> interrupt ( Ctrl-C )"
> -		print
> -		print "Catalyst aborting...."
> -		sys.exit(2)
> +		log.critical('Catalyst build aborted due to user
> interrupt (Ctrl-C)') if not success:
>  		sys.exit(2)
>  	sys.exit(0)


Nice :)


-- 
Brian Dolbec <dolsen>



  reply	other threads:[~2015-10-09 16:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-09  5:57 [gentoo-catalyst] [PATCH 1/3] main: group related command line flags Mike Frysinger
2015-10-09  5:57 ` [gentoo-catalyst] [PATCH 2/3] log: new logging module to standardize catalyst output Mike Frysinger
2015-10-09 16:30   ` Brian Dolbec
2015-10-09  5:57 ` [gentoo-catalyst] [PATCH 3/3] main: convert to new logging module Mike Frysinger
2015-10-09 16:32   ` Brian Dolbec [this message]
2015-10-09 16:19 ` [gentoo-catalyst] [PATCH 1/3] main: group related command line flags 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=20151009093240.0f258eea.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