From f63b74d9742ed66450c16b2dd9dfaded7c4f46c0 Mon Sep 17 00:00:00 2001 From: Aaron Colwell <300262+acolwell@users.noreply.github.com> Date: Thu, 1 Aug 2024 00:52:35 -0700 Subject: [PATCH] Fix Natron and NatronRenderer exit code. (#993) Change exit code to 0 when -v/--version or -h/--help are specified. --- App/NatronApp_main.cpp | 5 +++-- Engine/CLArgs.cpp | 9 ++++----- Engine/CLArgs.h | 3 ++- Renderer/NatronRenderer_main.cpp | 5 +++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/App/NatronApp_main.cpp b/App/NatronApp_main.cpp index 229c934cc..88902f6eb 100644 --- a/App/NatronApp_main.cpp +++ b/App/NatronApp_main.cpp @@ -139,8 +139,9 @@ int main(int argc, char *argv[]) CLArgs::printBackGroundWelcomeMessage(); CLArgs args(argc, argv, false); - if (args.getError() > 0) { - return 1; + const auto error = args.getError(); + if (error) { + return error.value(); } if ( args.isBackgroundMode() ) { diff --git a/Engine/CLArgs.cpp b/Engine/CLArgs.cpp index cbac6d978..649c9d3f5 100644 --- a/Engine/CLArgs.cpp +++ b/Engine/CLArgs.cpp @@ -65,7 +65,7 @@ struct CLArgsPrivate bool clearCacheOnLaunch; bool clearOpenFXCacheOnLaunch; QString ipcPipe; - int error; + std::optional error; bool isInterpreterMode; std::list > > frameRanges; bool rangeSet; @@ -95,7 +95,6 @@ struct CLArgsPrivate , clearCacheOnLaunch(false) , clearOpenFXCacheOnLaunch(false) , ipcPipe() - , error(0) , isInterpreterMode(false) , frameRanges() , rangeSet(false) @@ -441,7 +440,7 @@ CLArgs::printUsage(const std::string& programName) std::cout << msg.toStdString() << std::endl; } // CLArgs::printUsage -int +const std::optional& CLArgs::getError() const { return _imp->error; @@ -791,7 +790,7 @@ CLArgsPrivate::parse() msg += tr(" built on %1").arg( QString::fromUtf8(__DATE__) ); # endif std::cout << msg.toStdString() << std::endl; - error = 1; + error = 0; return; } @@ -803,7 +802,7 @@ CLArgsPrivate::parse() it = args.erase(it); CLArgs::printUsage( executable.toStdString() ); - error = 1; + error = 0; return; } diff --git a/Engine/CLArgs.h b/Engine/CLArgs.h index ff56e2e2c..d3761387c 100644 --- a/Engine/CLArgs.h +++ b/Engine/CLArgs.h @@ -29,6 +29,7 @@ #include "Global/Macros.h" #include +#include #include #include #include @@ -99,7 +100,7 @@ class CLArgs //: boost::noncopyable // GCC 4.2 requires the copy constructor static void printBackGroundWelcomeMessage(); static void printUsage(const std::string& programName); - int getError() const; + const std::optional& getError() const; const std::list& getWriterArgs() const; const std::list& getReaderArgs() const; diff --git a/Renderer/NatronRenderer_main.cpp b/Renderer/NatronRenderer_main.cpp index 0189ba85b..385adf75d 100644 --- a/Renderer/NatronRenderer_main.cpp +++ b/Renderer/NatronRenderer_main.cpp @@ -94,8 +94,9 @@ extern "C" { CLArgs args(argc, argv, true); - if (args.getError() > 0) { - return 1; + const auto error = args.getError(); + if (error) { + return error.value(); } AppManager manager;