https://github.com/galaxyproject/galaxy
Raw File
Tip revision: bbbd1b4c0d14293250fc62274f25f56b7d328040 authored by Daniel Blankenberg on 10 January 2013, 19:57:37 UTC
Fixes for Tool.check_and_update_param_values_helper() to check that the type of value provided is valid for the input parameter currently declared. Fixes an issue where rurun would select the wrong input dataset.
Tip revision: bbbd1b4
universe_merger.py
#! /usr/bin/env python
'''
universe_merger.py

Created by Anne Pajon on 31 Jan 2012

Copyright (c) 2012 Cancer Research UK - Cambridge Research Institute.

This source file is licensed under the Academic Free License version
3.0 available at http://www.opensource.org/licenses/AFL-3.0.

Permission is hereby granted to reproduce, translate, adapt, alter,
transform, modify, or arrange this source file (the "Original Work");
to distribute or communicate copies of it under any license of your
choice that does not contradict the terms and conditions; to perform
or display the Original Work publicly.

THE ORIGINAL WORK IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS
AND WITHOUT WARRANTY, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT
LIMITATION, THE WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF
THE ORIGINAL WORK IS WITH YOU.

Script for merging specific local Galaxy config universe_wsgi.ini.cri with default Galaxy universe_wsgi.ini.sample
'''
import ConfigParser
import sys
import optparse
import logging

def main():
    # logging configuration
    logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
    
    # get the options
    parser = optparse.OptionParser()
    parser.add_option("-s", "--sample", dest="sample", action="store", help="path to Galaxy universe_wsgi.ini.sample file")
    parser.add_option("-c", "--config", dest="config", action="store", help="path to your own universe_wsgi.ini file")
    parser.add_option("-o", "--output", dest="output", action="store", help="path to the new merged universe_wsgi.ini.new file")
    (options, args) = parser.parse_args()

    for option in ['sample', 'config']:
        if getattr(options, option) == None:
            print "Please supply a --%s parameter.\n" % (option)
            parser.print_help()
            sys.exit()    

    config_sample = ConfigParser.RawConfigParser()
    config_sample.read(options.sample)
    config_sample_content = open(options.sample, 'r').read()
    
    config = ConfigParser.RawConfigParser()
    config.read(options.config)
    
    logging.info("Merging your own config file %s into the sample one %s." % (options.config, options.sample))
    logging.info("---------- DIFFERENCE ANALYSIS BEGIN ----------")
    for section in config.sections():
        if not config_sample.has_section(section):
            logging.warning("-MISSING- section [%s] not found in sample file. It will be ignored." % section)
        else:
            for (name, value) in config.items(section):
                if not config_sample.has_option(section, name):
                    if not "#%s" % name in config_sample_content:
                        logging.warning("-MISSING- section [%s] option '%s' not found in sample file. It will be ignored." % (section, name))
                    else:
                        logging.info("-notset- section [%s] option '%s' not set in sample file. It will be added." % (section, name))
                        config_sample.set(section, name, value)
                else:
                    if not config_sample.get(section, name) == value:
                        logging.info("- diff - section [%s] option '%s' has different value ('%s':'%s'). It will be modified." % (section, name, config_sample.get(section, name), value))
                        config_sample.set(section, name, value)
    logging.info("---------- DIFFERENCE ANALYSIS END   ----------")
    
    if options.output:
        outputfile = open(options.output, 'w')
        config_sample.write(outputfile)
        outputfile.close()
    else:
        #print "----------"
        #config_sample.write(sys.stdout)
        #print "----------"
        logging.info("use -o OUTPUT to write the merged configuration into a file.")

    logging.info("read Galaxy universe_wsgi.ini.sample for detailed information.")
    
if __name__ == '__main__':
    main()
back to top