public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/R_overlay:master commit in: /, roverlay/config/, roverlay/rpackage/
@ 2012-06-28 13:29 André Erdmann
  0 siblings, 0 replies; only message in thread
From: André Erdmann @ 2012-06-28 13:29 UTC (permalink / raw
  To: gentoo-commits

commit:     c7143074312b3fb5a497c3729a1b4bac8a23a5a3
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Thu Jun 28 13:21:01 2012 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Thu Jun 28 13:21:01 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=c7143074

DescriptionReader: write description files

* the DescriptionReader is now able to write the description
  lines from an R package to a text file.
  This is optional and disabled unless DESCRIPTION_DIR is set in the config
  file.

	modified:   .gitignore
	modified:   R-overlay.conf
	modified:   roverlay/config/entrymap.py
	modified:   roverlay/rpackage/descriptionreader.py

---
 .gitignore                             |    1 +
 R-overlay.conf                         |    2 ++
 roverlay/config/entrymap.py            |   12 ++++++++++++
 roverlay/rpackage/descriptionreader.py |   27 ++++++++++++++++++++++++++-
 4 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/.gitignore b/.gitignore
index c412f0b..7b3f583 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,4 @@ roverlay.log
 
 /distfiles-root/
 /overlay-root/
+/desc-files/

diff --git a/R-overlay.conf b/R-overlay.conf
index 3a84234..b6eb8d9 100644
--- a/R-overlay.conf
+++ b/R-overlay.conf
@@ -26,3 +26,5 @@ ECLASS           = eclass/R-packages.eclass
 REPO_CONFIG = repo.list
 
 DISTFILES = distfiles-root
+
+DESCRIPTION_DIR = desc-files

diff --git a/roverlay/config/entrymap.py b/roverlay/config/entrymap.py
index 2cb7077..4179c4f 100644
--- a/roverlay/config/entrymap.py
+++ b/roverlay/config/entrymap.py
@@ -128,4 +128,16 @@ CONFIG_ENTRY_MAP = dict (
 
 	# --- dependency resolution
 
+	# == description reader ==
+
+	# * for debugging
+	# if set: write _all_ description files to dir/<package_filename>
+	description_descfiles_dir = dict (
+		path       = [ 'DESCRIPTION', 'descfiles_dir' ],
+		value_type = 'fs_abs:fs_dir',
+	),
+
+	# * alias
+	description_dir = 'description_descfiles_dir',
+
 )

diff --git a/roverlay/rpackage/descriptionreader.py b/roverlay/rpackage/descriptionreader.py
index 03ec30a..8aa35b3 100644
--- a/roverlay/rpackage/descriptionreader.py
+++ b/roverlay/rpackage/descriptionreader.py
@@ -5,13 +5,16 @@
 import re
 import tarfile
 import os.path
+import time
 
-from roverlay          import config
+from roverlay          import config, util
 from roverlay.rpackage import descriptionfields
 
 class DescriptionReader ( object ):
 	"""Description Reader"""
 
+	WRITE_DESCFILES_DIR = config.get ( 'DESCRIPTION.descfiles_dir', None )
+
 	def __init__ ( self, package_info, logger, read_now=False ):
 		"""Initializes a DESCRIPTION file reader."""
 
@@ -25,6 +28,14 @@ class DescriptionReader ( object ):
 		self.logger           = logger.getChild ( 'desc_reader' )
 		self.desc_data        = None
 
+		if DescriptionReader.WRITE_DESCFILES_DIR is not None:
+			self.write_desc_file  = os.path.join (
+				DescriptionReader.WRITE_DESCFILES_DIR,
+				'%s_%s.desc' % (
+					self.fileinfo ['name'], self.fileinfo ['ebuild_verstr']
+				)
+			)
+
 
 		if read_now:
 			self.run()
@@ -219,6 +230,20 @@ class DescriptionReader ( object ):
 			if not th is None: th.close()
 			del fh, th
 
+			if hasattr ( self, 'write_desc_file' ):
+				try:
+					util.dodir ( DescriptionReader.WRITE_DESCFILES_DIR )
+					fh = open ( self.write_desc_file, 'w' )
+					fh.write (
+						'=== This is debug output (%s) ===\n'
+							% time.strftime ( '%F %H:%M:%S' )
+					)
+					fh.write ( '\n'.join ( read_lines ) )
+					fh.write ( '\n' )
+				finally:
+					if 'fh' in locals() and fh: fh.close()
+
+
 			return read_lines
 
 		# --- end of get_desc_from_file (...) ---



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-06-28 13:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-28 13:29 [gentoo-commits] proj/R_overlay:master commit in: /, roverlay/config/, roverlay/rpackage/ André Erdmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox