I'm not sure how your overall file structure is set, but maybe the following can help:
In many of our cases we have to move all the files for a project from one place to another. To avoid path problem we work with relative paths.
For example if you have the following:
C:/project/p1
C:/project/p1/files/*.html
The first thing we do is save a Rainbow project in C:/project/p1. The root of the input files and the filter parameters folder are both set to <auto> by default and will use the folder where the project file is as the root.
Adding the *.html files will make then relative to C:/project/p1.
Any custom filter configuration or SRX we put in C:/project/p1 as well.
The ${ProjDir} and ${rootDir} variables can be used in many places to refer to the same root (C:/project/p1) and specify SRX, output paths from there.
Maybe that can help.
> ... create a new configuration format that Rainbow could export?
> I think it would be great to have this information saved/included:
> a) files matching a pattern X (eg. *.htm) will be processed using
> the filter configuration Y b) all filter configurations from a)
> that were created by the user c) all pipeline step configuration
> stuff that's currently an external reference (SRX files)
So: some general purpose file that would hold all the different parts needed to run a process.
- The input files and their associated configuration Id would be easy
- the filter configuration files used would also be easy
- the pipeline steps would be ok, except for any referenced files (like the SRX): because each step is independent an tool like Rainbow cannot know what are its external references. So the step itself would have to provide a way to serialize any external file it references. Not impossible, but tricky.
Maybe understanding better the environment you have may help seeing what would be the best options?
Here is what I get so far: You are creating a Rainbow project locally from various info:
- input files residing locally,
- SRX rules from a server,
- filter configurations from a server,
- step parameters from also a server.
Then you send that project, along with the referenced files to the server and execute?
Or am I missing something?
Cheers,
-ys
Jim
C:/project/p1
C:/project/p1/files/*.html
Maybe that can help.
[The entire original message is not included]
OK, I see the process better now. Thanks.
I think the best way to solve this is like you said: some kind of file that holds everything, or at least every part that belongs to the re-useable configuration.
The most difficult thing to solve will probably be the files references in the step parameters. Outside code cannot really know what are references or how to serialize them.
I'm not sure if it's doable, but it seems we would almost need an additional method that can provide the parameters plus the de-referenced file content. But it would mean mixing file formats, etc. Not sure how that could work.
Another possible direction could be to have some kind of "harvester" routine that explore a pipeline and manages to gather the referenced files. Based on extension, etc. maybe that can be done... although I doubt it. It would be very difficult to see the difference between an input and output paths for example.
Or creating a configuration package based on the Rainbow project and relying on the variables like ${rootDir}... maybe that is more doable.
I'll keep thinking about it. There's got to be a solution.
-yves
-ys