comparison Resources/SyncOrthancFolder.py @ 64:5fb01c588287

updated to Orthanc Framework 1.12.1
author Alain Mazy <am@osimis.io>
date Wed, 11 Oct 2023 15:58:27 +0200
parents 5915547fa6f2
children 1078942460cc
comparison
equal deleted inserted replaced
63:9789c6003e9d 64:5fb01c588287
1 #!/usr/bin/python 1 #!/usr/bin/python3
2 2
3 # 3 #
4 # This maintenance script updates the content of the "Orthanc" folder 4 # This maintenance script updates the content of the "Orthanc" folder
5 # to match the latest version of the Orthanc source code. 5 # to match the latest version of the Orthanc source code.
6 # 6 #
7 7
8 import multiprocessing 8 import multiprocessing
9 import os 9 import os
10 import stat 10 import stat
11 import urllib2 11 import urllib.request
12 12
13 TARGET = os.path.join(os.path.dirname(__file__), 'Orthanc') 13 TARGET = os.path.join(os.path.dirname(__file__), 'Orthanc')
14 PLUGIN_SDK_VERSION = [ '1.11.3' ] 14 PLUGIN_SDK_VERSION = '1.12.1'
15 REPOSITORY = 'https://hg.orthanc-server.com/orthanc/raw-file' 15 REPOSITORY = 'https://hg.orthanc-server.com/orthanc/raw-file'
16 16
17 FILES = [ 17 FILES = [
18 ('OrthancFramework/Resources/CMake/AutoGeneratedCode.cmake', 'CMake'), 18 ('OrthancFramework/Resources/CMake/AutoGeneratedCode.cmake', 'CMake'),
19 ('OrthancFramework/Resources/CMake/Compiler.cmake', 'CMake'), 19 ('OrthancFramework/Resources/CMake/Compiler.cmake', 'CMake'),
20 ('OrthancFramework/Resources/CMake/DownloadOrthancFramework.cmake', 'CMake'), 20 ('OrthancFramework/Resources/CMake/DownloadOrthancFramework.cmake', 'CMake'),
21 ('OrthancFramework/Resources/CMake/DownloadPackage.cmake', 'CMake'), 21 ('OrthancFramework/Resources/CMake/DownloadPackage.cmake', 'CMake'),
22 ('OrthancFramework/Resources/CMake/GoogleTestConfiguration.cmake', 'CMake'), 22 ('OrthancFramework/Resources/CMake/GoogleTestConfiguration.cmake', 'CMake'),
23 ('OrthancFramework/Resources/EmbedResources.py', 'CMake'), 23 ('OrthancFramework/Resources/EmbedResources.py', 'CMake'),
24 24 ('OrthancFramework/Resources/Toolchains/LinuxStandardBaseToolchain.cmake', 'Toolchains'),
25 ('OrthancFramework/Resources/Toolchains/LinuxStandardBaseToolchain.cmake', '.'), 25 ('OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain32.cmake', 'Toolchains'),
26 ('OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain32.cmake', '.'), 26 ('OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain64.cmake', 'Toolchains'),
27 ('OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain64.cmake', '.'), 27 ('OrthancFramework/Resources/Toolchains/MinGWToolchain.cmake', 'Toolchains'),
28 ('OrthancFramework/Resources/Toolchains/MinGWToolchain.cmake', '.'),
29
30 ('OrthancServer/Plugins/Samples/Common/ExportedSymbolsPlugins.list', 'Plugins'), 28 ('OrthancServer/Plugins/Samples/Common/ExportedSymbolsPlugins.list', 'Plugins'),
31 ('OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp', 'Plugins'), 29 ('OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp', 'Plugins'),
32 ('OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h', 'Plugins'), 30 ('OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h', 'Plugins'),
33 ('OrthancServer/Plugins/Samples/Common/OrthancPluginException.h', 'Plugins'), 31 ('OrthancServer/Plugins/Samples/Common/OrthancPluginException.h', 'Plugins'),
34 ('OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake', 'Plugins'), 32 ('OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake', 'Plugins'),
35 ('OrthancServer/Plugins/Samples/Common/VersionScriptPlugins.map', 'Plugins'), 33 ('OrthancServer/Plugins/Samples/Common/VersionScriptPlugins.map', 'Plugins'),
34
35 # Specific to DICOMweb plugin
36 ('OrthancServer/Resources/OrthancLogo.png', '.'),
36 ] 37 ]
37 38
38 SDK = [ 39 SDK = [
39 'orthanc/OrthancCPlugin.h', 40 'orthanc/OrthancCPlugin.h',
40 ] 41 ]
42 43
43 def Download(x): 44 def Download(x):
44 branch = x[0] 45 branch = x[0]
45 source = x[1] 46 source = x[1]
46 target = os.path.join(TARGET, x[2]) 47 target = os.path.join(TARGET, x[2])
47 print target 48 print(target)
48 49
49 try: 50 try:
50 os.makedirs(os.path.dirname(target)) 51 os.makedirs(os.path.dirname(target))
51 except: 52 except:
52 pass 53 pass
53 54
54 url = '%s/%s/%s' % (REPOSITORY, branch, source) 55 url = '%s/%s/%s' % (REPOSITORY, branch, source)
55 56
56 with open(target, 'w') as f: 57 with open(target, 'wb') as f:
57 f.write(urllib2.urlopen(url).read()) 58 try:
59 f.write(urllib.request.urlopen(url).read())
60 except:
61 print('ERROR %s' % url)
62 raise
58 63
59 64
60 commands = [] 65 commands = []
61 66
62 for f in FILES: 67 for f in FILES:
63 commands.append([ 'default', 68 commands.append([ 'default',
64 f[0], 69 f[0],
65 os.path.join(f[1], os.path.basename(f[0])) ]) 70 os.path.join(f[1], os.path.basename(f[0])) ])
66 71
67 for version in PLUGIN_SDK_VERSION: 72 for f in SDK:
68 for f in SDK: 73 commands.append([
69 commands.append([ 74 'Orthanc-%s' % PLUGIN_SDK_VERSION,
70 'Orthanc-%s' % version, 75 'OrthancServer/Plugins/Include/%s' % f,
71 'Plugins/Include/%s' % f, 76 'Sdk-%s/%s' % (PLUGIN_SDK_VERSION, f)
72 'Sdk-%s/%s' % (version, f) 77 ])
73 ])
74 78
75 79
76 pool = multiprocessing.Pool(10) # simultaneous downloads 80 pool = multiprocessing.Pool(10) # simultaneous downloads
77 pool.map(Download, commands) 81 pool.map(Download, commands)