Mercurial > hg > orthanc-stl
annotate Resources/EmbedStaticAssets.py @ 74:ad9950628b35 default tip
use relative path to instances for reverse proxying
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 15 Oct 2024 14:46:48 +0200 |
parents | b798387b085c |
children |
rev | line source |
---|---|
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 #!/usr/bin/python3 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 |
24 | 3 # SPDX-FileCopyrightText: 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 # SPDX-License-Identifier: GPL-3.0-or-later |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 # STL plugin for Orthanc |
24 | 7 # Copyright (C) 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 # |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 # This program is free software: you can redistribute it and/or |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 # modify it under the terms of the GNU General Public License as |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 # published by the Free Software Foundation, either version 3 of the |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 # License, or (at your option) any later version. |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 # |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 # This program is distributed in the hope that it will be useful, but |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 # WITHOUT ANY WARRANTY; without even the implied warranty of |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 # General Public License for more details. |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 # |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 # You should have received a copy of the GNU General Public License |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 import gzip |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 import hashlib |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 import io |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 import os |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 import sys |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
29 if len(sys.argv) <= 2: |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
30 raise Exception('Usage: %s [target C++] [folder prefixes] [source folders]' % sys.argv[0]) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
32 SOURCES = sys.argv[2:] |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
33 TARGET = sys.argv[1] |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
35 if len(SOURCES) % 2 != 0: |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
36 raise Exception('There must be an even number of sources') |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
37 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
38 FILES = [] |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
39 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
40 for i in range(len(SOURCES) // 2): |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
41 prefix = SOURCES[i] |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
42 if '/' in prefix: |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
43 raise Exception('Prefix cannot contain a slash, but found: %s' % prefix) |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
44 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
45 folder = SOURCES[i + len(SOURCES) // 2] |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
46 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
47 if not os.path.isdir(folder): |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
48 raise Exception('Nonexistent source folder: %s' % folder) |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
49 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
50 for root, dirs, files in os.walk(folder): |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
51 files.sort() |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
52 dirs.sort() |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
53 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
54 for f in files: |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
55 FILES.append({ |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
56 'path' : os.path.join(root, f), |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
57 'key' : prefix + '/' + os.path.relpath(os.path.join(root, f), folder), |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
58 }) |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
59 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
60 FILES = sorted(FILES, key = lambda x: x['key']) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 def EncodeFileAsCString(f, variable, content): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 f.write('static const uint8_t %s[%d] = \n "' % (variable, len(content) + 1)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 column = 0 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 for c in content: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 if sys.version_info < (3, 0): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 # Python 2.7 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 i = ord(c) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 else: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 # Python 3.x |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 i = c |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 if i < 32 or i >= 127 or i == ord('?'): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 f.write('\\{0:03o}'.format(i)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 elif i in [ ord('"'), ord('\\') ]: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 f.write('\\' + chr(i)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 else: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 f.write(chr(i)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 column += 1 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 if column >= 120: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
86 f.write('"\n "') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 column = 0 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
88 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 f.write('";\n\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
92 def WriteChecksum(f, variable, content): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 md5 = hashlib.md5(content).hexdigest() |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 g.write('static const char* %s = "%s";\n\n' % (variable, md5)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 with open(TARGET, 'w') as g: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
98 g.write(''' |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
99 #include <stdint.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
100 #include <Compression/GzipCompressor.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
101 #include <OrthancException.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
102 #include <Toolbox.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
103 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
104 static void Uncompress(std::string& target, const void* data, size_t size, const std::string& md5Expected) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
105 { |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
106 Orthanc::GzipCompressor compressor; |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 compressor.Uncompress(target, data, size); |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 std::string md5Actual; |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
109 Orthanc::Toolbox::ComputeMD5(md5Actual, target); |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
110 if (md5Actual != md5Expected) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
111 { |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
112 throw Orthanc::OrthancException(Orthanc::ErrorCode_CorruptedFile); |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
113 } |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
114 } |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
115 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
116 ''') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
118 index = {} |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
119 count = 0 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
120 |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
121 for file in FILES: |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
122 variable = 'data_%06d' % count |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
123 count += 1 |
11
165447afdcde
make the build of static assets reproducible
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
124 |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
125 with open(file['path'], 'rb') as f: |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
126 content = f.read() |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
127 |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
128 if sys.version_info < (3, 0): |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
129 # Python 2.7 |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
130 fileobj = io.BytesIO() |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
131 gzip.GzipFile(fileobj=fileobj, mode='w', mtime=0).write(content) |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
132 compressed = fileobj.getvalue() |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
133 else: |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
134 # Python 3.x |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
135 compressed = gzip.compress(content, mtime=0) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
137 EncodeFileAsCString(g, variable, compressed) |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
138 WriteChecksum(g, variable + '_md5', content) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
139 |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
140 file['variable'] = variable |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 g.write('void ReadStaticAsset(std::string& target, const std::string& path)\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 g.write('{\n') |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
144 for file in FILES: |
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
145 g.write(' if (path == "%s")\n' % file['key']) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 g.write(' {\n') |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
147 g.write(' Uncompress(target, %s, sizeof(%s) - 1, %s_md5);\n' % (file['variable'], file['variable'], file['variable'])) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
148 g.write(' return;\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
149 g.write(' }\n\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 |
62
b798387b085c
added 3DHOP viewer version 4.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
46
diff
changeset
|
151 g.write(' throw Orthanc::OrthancException(Orthanc::ErrorCode_InexistentItem, "Unknown static asset: " + path);\n') |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
152 g.write('}\n') |