mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: simplify use of case-relative paths
- provide relativePath() for argList and for Time.
These are relative to the case globalPath().
Eg,
Info<< "output: " << runTime.relativePath(outputFile) << nl;
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2017 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2017-2018 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -38,11 +38,13 @@ using namespace Foam;
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::noBanner();
|
||||
argList::noParallel();
|
||||
argList::noCheckProcessorDirectories(); // parallel OK, but without checks
|
||||
|
||||
// argList::noFunctionObjects();
|
||||
argList::addOption("label", "value", "Test parsing of label");
|
||||
argList::addOption("scalar", "value", "Test parsing of scalar");
|
||||
argList::addOption("string", "value", "Test string lookup");
|
||||
argList::addOption("relative", "PATH", "Test relativePath");
|
||||
|
||||
// These are actually lies (never had -parseLabel, -parseScalar etc),
|
||||
// but good for testing...
|
||||
@ -70,20 +72,27 @@ int main(int argc, char *argv[])
|
||||
argList::addArgument("label");
|
||||
argList::noMandatoryArgs();
|
||||
|
||||
argList args(argc, argv);
|
||||
#include "setRootCase.H"
|
||||
|
||||
Info<< "command-line ("
|
||||
Pout<< "command-line ("
|
||||
<< args.options().size() << " options, "
|
||||
<< args.args().size() << " args)" << nl
|
||||
<< " " << args.commandLine().c_str() << nl << nl;
|
||||
|
||||
Info<< "rootPath: " << args.rootPath() << nl
|
||||
Pout<< "rootPath: " << args.rootPath() << nl
|
||||
<< "globalCase: " << args.globalCaseName() << nl
|
||||
<< "globalPath: " << args.globalPath() << nl
|
||||
<< nl;
|
||||
|
||||
Info<<"have: "
|
||||
<<args.count({"label", "scalar"}) << " options" << nl;
|
||||
if (args.found("relative"))
|
||||
{
|
||||
Pout<< "input path: " << args["relative"] << nl
|
||||
<< "relative : " << args.relativePath(args["relative"], true) << nl
|
||||
<< nl;
|
||||
}
|
||||
|
||||
Info<< "have: "
|
||||
<< args.count({"label", "scalar"}) << " options" << nl;
|
||||
|
||||
label ival;
|
||||
scalar sval;
|
||||
|
||||
@ -27,7 +27,7 @@ Description
|
||||
|
||||
#include "argList.H"
|
||||
#include "IOstreams.H"
|
||||
#include "TimePaths.H"
|
||||
#include "Time.H"
|
||||
#include "timeSelector.H"
|
||||
|
||||
using namespace Foam;
|
||||
@ -58,13 +58,31 @@ bool print(const instantList& instants)
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::addNote("Test timeSelector");
|
||||
argList::addNote("Test timeSelector and TimePaths");
|
||||
|
||||
timeSelector::addOptions(true, true);
|
||||
argList::noLibs();
|
||||
argList::noFunctionObjects();
|
||||
|
||||
argList::addOption("relative", "PATH", "Test relativePath");
|
||||
|
||||
#include "setRootCase.H"
|
||||
#include "createTime.H"
|
||||
|
||||
Pout<< "Time" << nl
|
||||
<< "rootPath: " << runTime.rootPath() << nl
|
||||
<< "path: " << runTime.path() << nl
|
||||
<< "globalCase: " << runTime.globalCaseName() << nl
|
||||
<< "globalPath: " << runTime.globalPath() << nl
|
||||
<< nl;
|
||||
|
||||
if (args.found("relative"))
|
||||
{
|
||||
Pout<< "input path: " << args["relative"] << nl
|
||||
<< "relative : " << runTime.relativePath(args["relative"], true)
|
||||
<< nl
|
||||
<< nl;
|
||||
}
|
||||
|
||||
autoPtr<TimePaths> timePaths;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user