//- // ========================================================================== // Copyright (C) 1995 - 2005 Alias Systems Corp. and/or its licensors. All // rights reserved. // // The coded instructions, statements, computer programs, and/or related // material (collectively the "Data") in these files are provided by Alias // Systems Corp. ("Alias") and/or its licensors for the exclusive use of the // Customer (as defined in the Alias Software License Agreement that // accompanies this Alias software). Such Customer has the right to use, // modify, and incorporate the Data into other products and to distribute such // products for use by end-users. // // THE DATA IS PROVIDED "AS IS". ALIAS HEREBY DISCLAIMS ALL WARRANTIES // RELATING TO THE DATA, INCLUDING, WITHOUT LIMITATION, ANY AND ALL EXPRESS OR // IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND/OR FITNESS FOR A // PARTICULAR PURPOSE. IN NO EVENT SHALL ALIAS BE LIABLE FOR ANY DAMAGES // WHATSOEVER, WHETHER DIRECT, INDIRECT, SPECIAL, OR PUNITIVE, WHETHER IN AN // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, OR IN EQUITY, // ARISING OUT OF ACCESS TO, USE OF, OR RELIANCE UPON THE DATA. // ========================================================================== //+ #include #include #include #include #include #include const char* usage = "usage: [-h/help] readAndWrite fileName1 fileName2 ...\n\ each file will be loaded, the string \".updated\" will be added\n\ either at the end of just before the extension, and the file will\n\ be written back out again. If the specified file was created by\n\ an old version of Maya, the \"updated\" version will contain the\n\ same scene but updated to the current file format.\n"; int main(int argc, char **argv) { MStatus stat; argc--, argv++; if (argc == 0) { cerr << usage; return(1); } for (; argc && argv[0][0] == '-'; argc--, argv++) { if (!strcmp(argv[0], "-h") || !strcmp(argv[0], "-help")) { cerr << usage; return(1); } // Check for other valid flags if (argv[0][0] == '-') { // Unknown flag cerr << usage; return(1); } } stat = MLibrary::initialize (argv[0]); if (!stat) { stat.perror("MLibrary::initialize"); return 1; } for (; argc; argc--, argv++) { MString fileName(argv[0]); MString fileType; MFileIO::newFile(true); cerr << "Loading \"" << fileName << "\" ... "; // Load the file into Maya stat = MFileIO::open(fileName); if ( !stat ) { stat.perror(fileName.asChar()); continue; } cerr << " done.\n"; // Get the file type fileType = MFileIO::fileType(); // Don't overwrite the existing file MString newFile; // Find the extension if one exists int loc = fileName.rindex('.'); if (loc == -1) { newFile = fileName + ".updated"; } else { newFile = fileName.substring(0, loc-1); newFile += ".updated"; newFile += fileName.substring(loc, fileName.length()-1); } stat = MFileIO::saveAs(newFile, fileType.asChar()); cerr << " "; if (stat) { cerr << "resaved as " << MFileIO::currentFile() << endl; } else { stat.perror(newFile.asChar()); } } MLibrary::cleanup(); return 0; }