49 const std::vector<wxString>& aPathsWithOverwriteDisallowed,
50 const std::vector<JOB_OUTPUT>& aOutputsToHandle,
51 std::optional<wxString>& aResolvedOutputPath )
54 aResolvedOutputPath.reset();
57 outputPath.Replace( wxT(
"\\" ), wxT(
"/" ) );
61 if( outputPath.StartsWith(
"~" ) )
62 outputPath.Replace(
"~", wxGetHomeDir(),
false );
68 wxFileName outputFileName( outputPath );
69 wxString parentDir = outputFileName.GetPath();
71 if( !parentDir.IsEmpty() && !wxFileName::DirExists( parentDir ) )
73 if( !wxFileName::Mkdir( parentDir, wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL ) )
75 aResolvedOutputPath.reset();
80 wxFFileOutputStream ostream( outputPath );
84 aResolvedOutputPath.reset();
90 if( FILE* fp = ostream.GetFile()->fp() )
93 wxZipOutputStream zipstream( ostream, -1, wxConvUTF8 );
99 if( !zipstream.Close() )
103 aResolvedOutputPath = outputPath;
105 aResolvedOutputPath.reset();
bool HandleOutputs(const wxString &aBaseTempPath, PROJECT *aProject, const std::vector< wxString > &aPathsWithOverwriteDisallowed, const std::vector< JOB_OUTPUT > &aOutputsToHandle, std::optional< wxString > &aResolvedOutputPath) override
bool AddDirectoryToZip(wxZipOutputStream &aZip, const wxString &aSourceDir, wxString &aErrors, const wxString &aParentDir)
Add a directory and its contents to a zip file.