comparison runner/main.cpp @ 255:0774f36cb151

Add --transform-minversion flag
author Chris Cannam
date Thu, 15 Sep 2016 11:31:03 +0100
parents 4307b34f86c0
children 68dc2d99a5b1
comparison
equal deleted inserted replaced
254:e257f776a589 255:0774f36cb151
360 cerr << " --minversion <V> " 360 cerr << " --minversion <V> "
361 << wrapCol("Exit with successful return code if the version of " 361 << wrapCol("Exit with successful return code if the version of "
362 + myname + " is at least <V>, failure otherwise." 362 + myname + " is at least <V>, failure otherwise."
363 " For scripts that depend on certain option support.") 363 " For scripts that depend on certain option support.")
364 << endl << endl; 364 << endl << endl;
365 cerr << " --transform-minversion <I> <V>\n"
366 << " "
367 << wrapCol("Exit with successful return code if the plugin providing "
368 " transform id <I> is at least <V>, failure otherwise.")
369 << endl << endl;
365 cerr << " -h, --help Show help." << endl; 370 cerr << " -h, --help Show help." << endl;
366 cerr << " -h, --help <W> Show help for writer type W." << endl; 371 cerr << " -h, --help <W> Show help for writer type W." << endl;
367 cerr << " " << writerText << endl; 372 cerr << " " << writerText << endl;
368 373
369 cerr << endl 374 cerr << endl
440 << "@prefix : <#> ." << endl << endl; 445 << "@prefix : <#> ." << endl << endl;
441 QString rdf = RDFTransformFactory::writeTransformToRDF 446 QString rdf = RDFTransformFactory::writeTransformToRDF
442 (transform, ":transform"); 447 (transform, ":transform");
443 cout << rdf; 448 cout << rdf;
444 } 449 }
450
451 static int
452 checkTransformMinVersion(QString myname, QString id, int version)
453 {
454 Transform transform =
455 TransformFactory::getInstance()->getDefaultTransformFor(id);
456 QString pvs = transform.getPluginVersion();
457 bool ok = false;
458 int pv = pvs.toInt(&ok);
459 if (!ok) {
460 cerr << myname << ": transform version \"" << pvs << "\" is not an integer"
461 << endl;
462 return 1;
463 }
464 if (pv >= version) {
465 return 0;
466 } else {
467 return 1;
468 }
469 }
445 470
446 void 471 void
447 findSourcesRecursive(QString dirname, QStringList &addTo, int &found) 472 findSourcesRecursive(QString dirname, QStringList &addTo, int &found)
448 { 473 {
449 QDir dir(dirname); 474 QDir dir(dirname);
579 bool listWriters = false; 604 bool listWriters = false;
580 bool listFormats = false; 605 bool listFormats = false;
581 bool summaryOnly = false; 606 bool summaryOnly = false;
582 QString skeletonFor = ""; 607 QString skeletonFor = "";
583 QString minVersion = ""; 608 QString minVersion = "";
609 pair<QString, QString> transformMinVersion;
584 QString myname = args[0]; 610 QString myname = args[0];
585 myname = QFileInfo(myname).baseName(); 611 myname = QFileInfo(myname).baseName();
586 QStringList otherArgs; 612 QStringList otherArgs;
587 Vamp::HostExt::PluginSummarisingAdapter::SegmentBoundaries boundaries; 613 Vamp::HostExt::PluginSummarisingAdapter::SegmentBoundaries boundaries;
588 614
746 cerr << helpStr << endl; 772 cerr << helpStr << endl;
747 exit(2); 773 exit(2);
748 } 774 }
749 minVersion = args[++i]; 775 minVersion = args[++i];
750 continue; 776 continue;
777 } else if (arg == "--transform-minversion") {
778 if (last || (i+2) == args.size() ||
779 args[i+1].startsWith("-") ||
780 args[i+2].startsWith("-")) {
781 cerr << myname << ": usage: "
782 << myname << " " << arg << " <version>" << endl;
783 cerr << helpStr << endl;
784 exit(2);
785 }
786 transformMinVersion = { args[i+1], args[i+2] };
787 i += 2;
788 continue;
751 } else if (arg == "-s" || arg == "--skeleton") { 789 } else if (arg == "-s" || arg == "--skeleton") {
752 if (last || args[i+1].startsWith("-")) { 790 if (last || args[i+1].startsWith("-")) {
753 cerr << myname << ": usage: " 791 cerr << myname << ": usage: "
754 << myname << " " << arg 792 << myname << " " << arg
755 << " <transform>" << endl; 793 << " <transform>" << endl;
825 if (!requestedWriterTags.empty()) { 863 if (!requestedWriterTags.empty()) {
826 cerr << helpStr << endl; 864 cerr << helpStr << endl;
827 exit(2); 865 exit(2);
828 } 866 }
829 exit(checkMinVersion(myname, minVersion)); 867 exit(checkMinVersion(myname, minVersion));
868 }
869 if (transformMinVersion.first != "") {
870 if (!requestedWriterTags.empty()) {
871 cerr << helpStr << endl;
872 exit(2);
873 }
874 bool ok = false;
875 int version = transformMinVersion.second.toInt(&ok);
876 if (!ok) {
877 cerr << myname << ": plugin version \"" << transformMinVersion.second
878 << "\" must be an integer" << endl;
879 cerr << helpStr << endl;
880 exit(2);
881 }
882 exit(checkTransformMinVersion(myname, transformMinVersion.first, version));
830 } 883 }
831 884
832 if (requestedTransformFiles.empty() && 885 if (requestedTransformFiles.empty() &&
833 requestedTransformListFiles.empty() && 886 requestedTransformListFiles.empty() &&
834 requestedDefaultTransforms.empty()) { 887 requestedDefaultTransforms.empty()) {