diff -r 0951727b8815 -r d2c80f5cab53 configurationengine/source/scripts/conesub_export.py --- a/configurationengine/source/scripts/conesub_export.py Wed Sep 08 12:20:56 2010 +0300 +++ b/configurationengine/source/scripts/conesub_export.py Thu Oct 21 16:36:53 2010 +0300 @@ -138,6 +138,14 @@ "Filters out all files with extension sis, sisx, wgz or wgt.", default=None) + group.add_option("--include-content-filter", + dest="include_content_filter", + help="Filters out files and folders from content folder which don't match with "\ + "the given regular expression. Matching is case-insensitive. "\ + "Example --include-content-filter=\".*(manual|configurator).*\" "\ + "Filters out all content files which don't have manual or configurator in their path.", + default=None) + parser.add_option_group(group) (options, args) = parser.parse_args() @@ -201,6 +209,7 @@ added_layers = options.added, empty_folders = not options.exclude_empty_folders, exclude_filters = {"content": options.exclude_content_filter}, + include_filters = {"content": options.include_content_filter}, options = options) else: _export_to_storage(project = project, @@ -209,10 +218,11 @@ added_layers = options.added, empty_folders = not options.exclude_empty_folders, exclude_filters = {"content": options.exclude_content_filter}, + include_filters = {"content": options.include_content_filter}, options = options) -def _export_to_storage(project, remote_project_location, configs, added_layers, empty_folders, exclude_filters, options): +def _export_to_storage(project, remote_project_location, configs, added_layers, empty_folders, exclude_filters, include_filters, options): assert len(configs) > 0 # If the remote storage is not given, determine it automatically based @@ -240,7 +250,8 @@ project.export_configuration(config, remote_project.storage, empty_folders = empty_folders, - exclude_filters = exclude_filters) + exclude_filters = exclude_filters, + include_filters = include_filters) print "Export %s to %s done!" % (config_path, remote_project_location) # Setting first as active configuration if there are more than one configuration defined. @@ -254,9 +265,9 @@ remote_project.save() remote_project.close() - _add_layers(project, remote_project_location, added_layers, empty_folders, exclude_filters, options) + _add_layers(project, remote_project_location, added_layers, empty_folders, exclude_filters, include_filters, options) -def _add_layers(source_project, remote_project_location, added_configs, empty_folders, exclude_filters, options): +def _add_layers(source_project, remote_project_location, added_configs, empty_folders, exclude_filters, include_filters, options): """ Add new configuration layers from source_project into """ @@ -278,7 +289,8 @@ source_project.export_configuration(existing_config, target_project.storage, empty_folders = empty_folders, - exclude_filters = exclude_filters) + exclude_filters = exclude_filters, + include_filters = include_filters) else: # The given configuration does not exist in the source project, # create a new empty layer @@ -292,7 +304,7 @@ target_project.save() target_project.close() -def _export_to_dir(project, export_dir, export_format, configs, added_layers, empty_folders, exclude_filters, options): +def _export_to_dir(project, export_dir, export_format, configs, added_layers, empty_folders, exclude_filters, include_filters, options): if not os.path.exists(export_dir): os.makedirs(export_dir) @@ -304,7 +316,7 @@ remote_name += '/' remote_name = os.path.join(export_dir, remote_name) - _export_to_storage(project, remote_name, [config], added_layers, empty_folders, exclude_filters, options) + _export_to_storage(project, remote_name, [config], added_layers, empty_folders, exclude_filters, include_filters, options) if __name__ == "__main__": main()