Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / applications / test / fileNameClean / Test-fileNameClean.C
blob2c55177971a55f9651dbecf1fc004406fbcf5a97
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2009-2010 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Application
25     fileNameCleanTest
27 Description
30 \*---------------------------------------------------------------------------*/
32 #include "argList.H"
33 #include "fileName.H"
34 #include "SubList.H"
35 #include "IOobject.H"
36 #include "IOstreams.H"
37 #include "OSspecific.H"
40 using namespace Foam;
42 void printCleaning(fileName& pathName)
44     Info<< "fileName = " << pathName << nl
45         << "  path() = " << pathName.path() << nl
46         << "  name() = " << pathName.name() << nl
47         << "  joined = " << pathName.path()/pathName.name() << nl << nl;
49     pathName.clean();
51     Info<< "cleaned  = " << pathName << nl
52         << "  path() = " << pathName.path() << nl
53         << "  name() = " << pathName.name() << nl
54         << "  joined = " << pathName.path()/pathName.name() << nl << nl;
56     IOobject::writeDivider(Info);
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 // Main program:
63 int main(int argc, char *argv[])
65     argList::noBanner();
66     argList::noParallel();
67     argList::validArgs.insert("fileName .. fileNameN");
68     argList::addOption("istream", "fileName", "test Istream values");
70     argList args(argc, argv, false, true);
72     if (args.size() <= 1 && args.options().empty())
73     {
74         args.printUsage();
75     }
77     fileName pathName;
78     if (args.optionReadIfPresent("case", pathName))
79     {
80         Info<< nl
81             << "-case" << nl
82             << "path = " << args.path() << nl
83             << "root = " << args.rootPath() << nl
84             << "case = " << args.caseName() << nl
85             << "FOAM_CASE=" << getEnv("FOAM_CASE") << nl
86             << "FOAM_CASENAME=" << getEnv("FOAM_CASENAME") << nl
87             << endl;
89         printCleaning(pathName);
90     }
92     for (label argI=1; argI < args.size(); ++argI)
93     {
94         pathName = args[argI];
95         printCleaning(pathName);
96     }
98     if (args.optionFound("istream"))
99     {
100         args.optionLookup("istream")() >> pathName;
102         Info<< nl
103             << "-case" << nl
104             << "path = " << args.path() << nl
105             << "root = " << args.rootPath() << nl
106             << "case = " << args.caseName() << nl
107             << "FOAM_CASE=" << getEnv("FOAM_CASE") << nl
108             << "FOAM_CASENAME=" << getEnv("FOAM_CASENAME") << nl
109             << endl;
111         printCleaning(pathName);
112     }
114     Info<< "\nEnd\n" << endl;
115     return 0;
119 // ************************************************************************* //