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()) { |
