[tracker/wip/sam/meson-functional-tests: 6/10] utils: Allow specifying output path for Barnum-based data generator
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/sam/meson-functional-tests: 6/10] utils: Allow specifying output path for Barnum-based data generator
- Date: Wed, 1 Nov 2017 18:08:25 +0000 (UTC)
commit facaf98ed21c6910f78aba5a03762e86229500e0
Author: Sam Thursfield <sam thursfield codethink co uk>
Date: Wed Nov 1 17:56:49 2017 +0000
utils: Allow specifying output path for Barnum-based data generator
This makes it usable from Meson, as previously the only way to control
where the output went would be to change the working directory but
Meson's custom_target() rule doesn't make that possible.
utils/data-generators/cc/generate | 26 ++++++++++++++++++--------
utils/data-generators/cc/tools.py | 9 ++++++---
2 files changed, 24 insertions(+), 11 deletions(-)
---
diff --git a/utils/data-generators/cc/generate b/utils/data-generators/cc/generate
index 0fbbe8c..5fa3bb6 100755
--- a/utils/data-generators/cc/generate
+++ b/utils/data-generators/cc/generate
@@ -1,6 +1,8 @@
#! /usr/bin/python2
# -*- coding: utf-8 -*-
+import argparse
+import os
import string
import time
import sys
@@ -32,25 +34,33 @@ def recent_enough_python ():
####################################################################################
-# we need a count
-if len(sys.argv) != 2:
- print "Usage: %s config-file" % sys.argv[0]
- sys.exit()
+def argument_parser():
+ parser = argparse.ArgumentParser(description="Nepomuk test data generator")
+ parser.add_argument('config_file', nargs=1)
+ parser.add_argument('output_dir', nargs='?')
+ return parser
+
+
+args = argument_parser().parse_args()
config = ConfigParser.RawConfigParser()
try:
- loaded_files = config.read(sys.argv[1])
+ loaded_files = config.read(args.config_file)
# config.read
# in 2.3 return None
# in 2.6+ returns a list of loaded files
if recent_enough_python ():
if (len (loaded_files) != 1):
- print "Cannot open %s" % (sys.argv[1])
+ print "Cannot open %s" % (args.config_file)
sys.exit (-1)
except Exception, e:
- print "Failed to read configuration file %s (%s)" % (sys.argv[1], e)
+ print "Failed to read configuration file %s (%s)" % (args.config_file, e)
sys.exit (-1)
+if args.output_dir:
+ if not os.path.exists(args.output_dir):
+ os.makedirs(args.output_dir)
+
def get_counter (section, option):
if config.has_option (section, option):
@@ -283,4 +293,4 @@ for index in xrange(1,count_others+1):
print "Done"
# dump all files
-tools.saveResult()
+tools.saveResult(output_dir=args.output_dir)
diff --git a/utils/data-generators/cc/tools.py b/utils/data-generators/cc/tools.py
index 049f813..d516bd3 100644
--- a/utils/data-generators/cc/tools.py
+++ b/utils/data-generators/cc/tools.py
@@ -3,6 +3,7 @@
import string
import random
import datetime
+import os
import ontology_prefixes
@@ -13,7 +14,7 @@ now = datetime.datetime.today().strftime('%Y-%m-%dT%H:%M:%SZ')
####################################################################################
def addType(name, order):
- output = 'ttl/%03d-' % order + name.replace( '#', '_') + '.ttl'
+ output = '%03d-' % order + name.replace( '#', '_') + '.ttl'
output_filenames[name] = output
result[name] = []
@@ -29,10 +30,12 @@ def getLastUri(type):
def getRandomUri(type):
return random.choice(last_uris[type])
-def saveResult ():
+def saveResult (output_dir=None):
+ output_dir = output_dir or 'ttl'
for ontology, content in result.items():
print 'Saving', output_filenames[ontology], '...'
- output = open( output_filenames[ontology], 'w')
+ path = os.path.join(output_dir, output_filenames[ontology])
+ output = open(path, 'w')
output.write( ontology_prefixes.ontology_prefixes )
for it in content:
output.write( it )
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]