Mercurial > hg > sonic-annotator
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()) { |