[EDF25906] : redirect output of the wget into MESSAGE macro

This commit is contained in:
Anthony Geay 2022-08-16 17:42:38 +02:00
parent f4764708fe
commit dacd89c7df
3 changed files with 59 additions and 1 deletions

View File

@ -25,6 +25,7 @@ SALOME_CONFIGURE_FILE(VERSION.in VERSION INSTALL ${SALOME_INSTALL_BINS})
SET(_bin_SCRIPTS SET(_bin_SCRIPTS
smesh_setenv.py smesh_setenv.py
smesh_test.py smesh_test.py
smesh_wget.py
) )
# --- rules --- # --- rules ---

31
bin/smesh_wget.py Normal file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env python3
# Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
import os
import os.path as osp
import sys
import subprocess as sp
p = sp.Popen(["wget"]+sys.argv[1:-1],stdout=sp.PIPE,stderr=sp.PIPE)
stdout, stderr = p.communicate()
ret = p.returncode
with open(sys.argv[-1],"wb") as f:
f.write( stdout + stderr )
sys.exit( ret )

View File

@ -275,7 +275,7 @@ namespace
std::string outFile = tmpDir + "libMeshGemsKeyGenerator.so"; std::string outFile = tmpDir + "libMeshGemsKeyGenerator.so";
std::string cmd = "wget " + url + " -O " + outFile; std::string cmd = "smesh_wget.py " + url + " -O " + outFile;
#endif #endif
@ -289,8 +289,34 @@ namespace
} }
} }
#ifndef WIN32
//[EDF25906]
std::string redirect = tmpDir + "redirect.out";
std::ostringstream oss;
oss << cmd << " " << redirect;
cmd = oss.str();
#endif
system( cmd.c_str() ); // download system( cmd.c_str() ); // download
#ifndef WIN32
{//[EDF25906]
std::ifstream infile(redirect);
infile.seekg(0, std::ios::end);
size_t length = infile.tellg();
infile.seekg(0, std::ios::beg);
std::unique_ptr<char []> buffer(new char[length+1]);
buffer[length] = '\0';
infile.read(const_cast<char *>( buffer.get() ),length);
MESSAGE( buffer.get() )
}
{
SMESH_File redirectFile( redirect, /*open=*/false );
redirectFile.remove();
}
#endif
SMESH_File resultFile( outFile, /*open=*/false ); SMESH_File resultFile( outFile, /*open=*/false );
bool ok = ( resultFile.exists() && resultFile.size() > 0 ); bool ok = ( resultFile.exists() && resultFile.size() > 0 );