Salome HOME
[EDF25906] : redirect output of the wget into MESSAGE macro V9_9_1b1
authorAnthony Geay <anthony.geay@edf.fr>
Tue, 16 Aug 2022 15:42:38 +0000 (17:42 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Tue, 16 Aug 2022 15:42:38 +0000 (17:42 +0200)
bin/CMakeLists.txt
bin/smesh_wget.py [new file with mode: 0644]
src/SMESHUtils/SMESH_MGLicenseKeyGen.cxx

index ad43884430ecbc08af0182c52d0b4ec4bc229a5c..932dfb4d1c28f0bc4f26e42c65c7f347d337120d 100644 (file)
@@ -25,6 +25,7 @@ SALOME_CONFIGURE_FILE(VERSION.in VERSION INSTALL ${SALOME_INSTALL_BINS})
 SET(_bin_SCRIPTS
   smesh_setenv.py
   smesh_test.py
+  smesh_wget.py
 )
 
 # --- rules ---
diff --git a/bin/smesh_wget.py b/bin/smesh_wget.py
new file mode 100644 (file)
index 0000000..35abe3a
--- /dev/null
@@ -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 )
index c86bad807ba73776683187f5556b06212642e422..1b5655e0c934686e5ab8345af3295ed7d473af85 100644 (file)
@@ -275,7 +275,7 @@ namespace
 
     std::string outFile = tmpDir + "libMeshGemsKeyGenerator.so";
 
-    std::string cmd = "wget " + url + " -O " + outFile;
+    std::string cmd = "smesh_wget.py " + url + " -O " + outFile;
 
 #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
 
+#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 );
     bool ok = ( resultFile.exists() && resultFile.size() > 0 );