c2cgeoportal-geoportal 2.3.5.80__py3-none-any.whl → 2.9rc2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. c2cgeoportal_geoportal/__init__.py +960 -0
  2. c2cgeoportal_geoportal/lib/__init__.py +256 -0
  3. c2cgeoportal_geoportal/lib/authentication.py +250 -0
  4. c2cgeoportal_geoportal/lib/bashcolor.py +46 -0
  5. c2cgeoportal_geoportal/lib/cacheversion.py +75 -0
  6. c2cgeoportal_geoportal/lib/caching.py +176 -0
  7. c2cgeoportal_geoportal/lib/check_collector.py +80 -0
  8. c2cgeoportal_geoportal/lib/checker.py +295 -0
  9. c2cgeoportal_geoportal/lib/common_headers.py +170 -0
  10. c2cgeoportal_geoportal/lib/dbreflection.py +266 -0
  11. c2cgeoportal_geoportal/lib/filter_capabilities.py +360 -0
  12. c2cgeoportal_geoportal/lib/fulltextsearch.py +50 -0
  13. c2cgeoportal_geoportal/lib/functionality.py +166 -0
  14. c2cgeoportal_geoportal/lib/headers.py +62 -0
  15. c2cgeoportal_geoportal/lib/i18n.py +38 -0
  16. c2cgeoportal_geoportal/lib/layers.py +132 -0
  17. c2cgeoportal_geoportal/lib/lingva_extractor.py +937 -0
  18. c2cgeoportal_geoportal/lib/loader.py +57 -0
  19. c2cgeoportal_geoportal/lib/metrics.py +117 -0
  20. c2cgeoportal_geoportal/lib/oauth2.py +1186 -0
  21. c2cgeoportal_geoportal/lib/oidc.py +304 -0
  22. c2cgeoportal_geoportal/lib/wmstparsing.py +353 -0
  23. c2cgeoportal_geoportal/lib/xsd.py +166 -0
  24. c2cgeoportal_geoportal/py.typed +0 -0
  25. c2cgeoportal_geoportal/resources.py +49 -0
  26. c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml +26 -0
  27. c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json +18 -0
  28. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore +6 -0
  29. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml +19 -0
  30. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml +30 -0
  31. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile +75 -0
  32. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile +6 -0
  33. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini +58 -0
  34. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml +19 -0
  35. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini +121 -0
  36. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +139 -0
  37. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/language_mapping +3 -0
  38. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-client.cfg +5 -0
  39. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-server.cfg +6 -0
  40. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
  41. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt +2 -0
  42. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py +25 -0
  43. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +41 -0
  44. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js +64 -0
  45. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.commons.js +11 -0
  46. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.config.js +22 -0
  47. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +42 -0
  48. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
  49. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
  50. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
  51. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
  52. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/resources.py +11 -0
  53. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js +12 -0
  54. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js +25 -0
  55. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py +39 -0
  56. c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/views/__init__.py +0 -0
  57. c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
  58. c2cgeoportal_geoportal/scaffolds/advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile +121 -0
  59. c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
  60. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
  61. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.editorconfig +17 -0
  62. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +73 -0
  63. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +50 -0
  64. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +66 -0
  65. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
  66. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.pre-commit-config.yaml +35 -0
  67. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
  68. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
  69. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +75 -0
  70. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
  71. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/README.rst +29 -0
  72. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +179 -0
  73. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +22 -0
  74. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check +25 -0
  75. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +2 -0
  76. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +24 -0
  77. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml +511 -0
  78. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +21 -0
  79. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +59 -0
  80. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.yaml +121 -0
  81. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +102 -0
  82. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
  83. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml +430 -0
  84. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po +6 -0
  85. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css +0 -0
  86. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css +0 -0
  87. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
  88. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_left.png +0 -0
  89. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_right.png +0 -0
  90. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/blank.png +0 -0
  91. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png +0 -0
  92. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png +0 -0
  93. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png +0 -0
  94. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png +0 -0
  95. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt.tmpl +3 -0
  96. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/Readme.txt +69 -0
  97. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/TM_EUROPE_BORDERS-0.3.sql +70 -0
  98. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
  99. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arial.ttf +0 -0
  100. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbd.ttf +0 -0
  101. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbi.ttf +0 -0
  102. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Ariali.ttf +0 -0
  103. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Bold.ttf +0 -0
  104. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-BoldItalic.ttf +0 -0
  105. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Italic.ttf +0 -0
  106. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Regular.ttf +0 -0
  107. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdana.ttf +0 -0
  108. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanab.ttf +0 -0
  109. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanai.ttf +0 -0
  110. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanaz.ttf +0 -0
  111. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts.conf +12 -0
  112. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +15 -0
  113. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.map.tmpl +87 -0
  114. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/tinyows.xml.tmpl +36 -0
  115. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Landscape.jrxml +207 -0
  116. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Portrait.jrxml +185 -0
  117. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Landscape.jrxml +200 -0
  118. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Portrait.jrxml +170 -0
  119. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/config.yaml.tmpl +175 -0
  120. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml +109 -0
  121. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
  122. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
  123. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/logo.png +0 -0
  124. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/north.svg +93 -0
  125. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/results.jrxml +25 -0
  126. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/project.yaml +18 -0
  127. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml +7 -0
  128. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl +15 -0
  129. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/run_alembic.sh +11 -0
  130. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +126 -0
  131. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +132 -0
  132. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg +7 -0
  133. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +5 -0
  134. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py +0 -0
  135. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py +43 -0
  136. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
  137. c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
  138. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +67 -0
  139. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +295 -0
  140. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
  141. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml +922 -0
  142. c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml +1503 -0
  143. c2cgeoportal_geoportal/scripts/__init__.py +64 -0
  144. c2cgeoportal_geoportal/scripts/c2cupgrade.py +879 -0
  145. c2cgeoportal_geoportal/scripts/create_demo_theme.py +80 -0
  146. c2cgeoportal_geoportal/scripts/manage_users.py +140 -0
  147. c2cgeoportal_geoportal/scripts/pcreate.py +314 -0
  148. c2cgeoportal_geoportal/scripts/theme2fts.py +347 -0
  149. c2cgeoportal_geoportal/scripts/urllogin.py +81 -0
  150. c2cgeoportal_geoportal/templates/login.html +90 -0
  151. c2cgeoportal_geoportal/templates/notlogin.html +62 -0
  152. c2cgeoportal_geoportal/templates/testi18n.html +12 -0
  153. c2cgeoportal_geoportal/views/__init__.py +59 -0
  154. c2cgeoportal_geoportal/views/dev.py +57 -0
  155. c2cgeoportal_geoportal/views/dynamic.py +208 -0
  156. c2cgeoportal_geoportal/views/entry.py +174 -0
  157. c2cgeoportal_geoportal/views/fulltextsearch.py +189 -0
  158. c2cgeoportal_geoportal/views/geometry_processing.py +75 -0
  159. c2cgeoportal_geoportal/views/i18n.py +129 -0
  160. c2cgeoportal_geoportal/views/layers.py +713 -0
  161. c2cgeoportal_geoportal/views/login.py +679 -0
  162. c2cgeoportal_geoportal/views/mapserverproxy.py +191 -0
  163. c2cgeoportal_geoportal/views/memory.py +90 -0
  164. c2cgeoportal_geoportal/views/ogcproxy.py +120 -0
  165. c2cgeoportal_geoportal/views/pdfreport.py +245 -0
  166. c2cgeoportal_geoportal/views/printproxy.py +143 -0
  167. c2cgeoportal_geoportal/views/profile.py +127 -0
  168. c2cgeoportal_geoportal/views/proxy.py +259 -0
  169. c2cgeoportal_geoportal/views/raster.py +193 -0
  170. c2cgeoportal_geoportal/views/resourceproxy.py +73 -0
  171. c2cgeoportal_geoportal/views/shortener.py +152 -0
  172. c2cgeoportal_geoportal/views/theme.py +1322 -0
  173. c2cgeoportal_geoportal/views/tinyowsproxy.py +189 -0
  174. c2cgeoportal_geoportal/views/vector_tiles.py +83 -0
  175. {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc2.dist-info}/METADATA +21 -24
  176. c2cgeoportal_geoportal-2.9rc2.dist-info/RECORD +192 -0
  177. {c2cgeoportal_geoportal-2.3.5.80.dist-info → c2cgeoportal_geoportal-2.9rc2.dist-info}/WHEEL +1 -1
  178. c2cgeoportal_geoportal-2.9rc2.dist-info/entry_points.txt +28 -0
  179. c2cgeoportal_geoportal-2.9rc2.dist-info/top_level.txt +2 -0
  180. tests/__init__.py +100 -0
  181. tests/test_cachebuster.py +71 -0
  182. tests/test_caching.py +275 -0
  183. tests/test_checker.py +85 -0
  184. tests/test_decimaljson.py +47 -0
  185. tests/test_headerstween.py +64 -0
  186. tests/test_i18n.py +31 -0
  187. tests/test_init.py +193 -0
  188. tests/test_locale_negociator.py +69 -0
  189. tests/test_mapserverproxy_route_predicate.py +64 -0
  190. tests/test_raster.py +267 -0
  191. tests/test_wmstparsing.py +238 -0
  192. tests/xmlstr.py +103 -0
  193. c2cgeoportal_geoportal-2.3.5.80.dist-info/DESCRIPTION.rst +0 -8
  194. c2cgeoportal_geoportal-2.3.5.80.dist-info/RECORD +0 -7
  195. c2cgeoportal_geoportal-2.3.5.80.dist-info/entry_points.txt +0 -22
  196. c2cgeoportal_geoportal-2.3.5.80.dist-info/metadata.json +0 -1
  197. c2cgeoportal_geoportal-2.3.5.80.dist-info/top_level.txt +0 -1
@@ -0,0 +1,175 @@
1
+ ---
2
+
3
+ throwErrorOnExtraParameters: true
4
+ defaultToSvg: true
5
+ resourceBundle: localisation
6
+
7
+ allowedReferers: &allowedHosts
8
+ ${DISABLE_MUTUALIZED_PRINT}- !hostnameMatch
9
+ ${DISABLE_MUTUALIZED_PRINT} host: ${MUTUALIZED_PRINT_URL}
10
+ ${DISABLE_LOCAL_PRINT}- !hostnameMatch
11
+ ${DISABLE_LOCAL_PRINT} host: ${VISIBLE_WEB_HOST}
12
+ - !localMatch {}
13
+
14
+ templates:
15
+ 1 A4 portrait: !template
16
+ reportTemplate: A4_Portrait.jrxml
17
+ attributes:
18
+ title:
19
+ !string &title
20
+ default: ""
21
+ username:
22
+ !string &username
23
+ default: ""
24
+ comments:
25
+ !string &comments
26
+ default: ""
27
+ debug:
28
+ !boolean &debug
29
+ default: false
30
+ legend: !legend &legend {}
31
+ map:
32
+ !map &map
33
+ maxDpi: 254
34
+ dpiSuggestions: [254]
35
+ zoomLevels:
36
+ !zoomLevels
37
+ scales: [100, 250, 500, 2500, 5000, 10000, 25000, 50000, 100000, 500000]
38
+ width: 555
39
+ height: 675
40
+ northArrow:
41
+ !northArrow &northArrow
42
+ size: 40
43
+ default:
44
+ graphic: "file:///north.svg"
45
+ scalebar:
46
+ !scalebar &scalebar
47
+ width: 150
48
+ height: 20
49
+ default:
50
+ fontSize: 8
51
+ timezone:
52
+ !string &timezone
53
+ default: "Europe/Zurich"
54
+ datasource:
55
+ !datasource &datasource
56
+ attributes:
57
+ title: !string {}
58
+ table: !table {}
59
+
60
+ processors: &processors
61
+ - !reportBuilder # compile all reports in current directory
62
+ directory: '.'
63
+ - !configureHttpRequests &configureHttpRequests
64
+ httpProcessors:
65
+ - !forwardHeaders
66
+ matchers: *allowedHosts
67
+ headers:
68
+ - Cookie
69
+ ## For internal print
70
+ ${DISABLE_LOCAL_PRINT}- !mapUri
71
+ ${DISABLE_LOCAL_PRINT} mapping:
72
+ ${DISABLE_LOCAL_PRINT} https?://${VISIBLE_WEB_HOST_RE_ESCAPED}${VISIBLE_ENTRY_POINT_RE_ESCAPED}tiles(.*): "${TILECLOUDCHAIN_INTERNAL_URL}${VISIBLE_ENTRY_POINT}tiles$1"
73
+ ${DISABLE_LOCAL_PRINT}- !mapUri
74
+ ${DISABLE_LOCAL_PRINT} mapping:
75
+ ${DISABLE_LOCAL_PRINT} https?://${VISIBLE_WEB_HOST_RE_ESCAPED}${VISIBLE_ENTRY_POINT_RE_ESCAPED}(.*): "${GEOPORTAL_INTERNAL_URL}${VISIBLE_ENTRY_POINT}$1"
76
+ ${DISABLE_LOCAL_PRINT}- !forwardHeaders
77
+ ${DISABLE_LOCAL_PRINT} matchers:
78
+ ${DISABLE_LOCAL_PRINT} - !hostnameMatch
79
+ ${DISABLE_LOCAL_PRINT} host: ${GEOPORTAL_INTERNAL_HOST}
80
+ ${DISABLE_LOCAL_PRINT} port: ${GEOPORTAL_INTERNAL_PORT}
81
+ ## End for internal print
82
+ - !forwardHeaders
83
+ headers:
84
+ - Referer
85
+ - X-Request-ID
86
+ - Forwarded
87
+ - !restrictUris
88
+ matchers:
89
+ - !localMatch
90
+ reject: true
91
+ - !hostnameMatch
92
+ host: geoportal
93
+ - !hostnameMatch
94
+ host: tilecloudchain
95
+ - !ipMatch
96
+ ip: 10.0.0.0
97
+ mask: 255.0.0.0
98
+ reject: true
99
+ - !ipMatch
100
+ ip: 172.16.0.0
101
+ mask: 255.240.0.0
102
+ reject: true
103
+ - !ipMatch
104
+ ip: 192.168.0.0
105
+ mask: 255.255.0.0
106
+ reject: true
107
+ - !acceptAll {}
108
+ - !prepareLegend
109
+ maxWidth: 185
110
+ template: legend.jrxml
111
+ - !createMap {}
112
+ - !createNorthArrow {}
113
+ - !createScalebar {}
114
+ - !createDataSource
115
+ processors:
116
+ - !prepareTable
117
+ dynamic: true
118
+ columns:
119
+ icon: !urlImage
120
+ urlExtractor: (.*)
121
+ urlGroup: 1
122
+
123
+ 2 A4 landscape: !template
124
+ reportTemplate: A4_Landscape.jrxml
125
+ attributes:
126
+ title: *title
127
+ username: *username
128
+ comments: *comments
129
+ debug: *debug
130
+ legend: *legend
131
+ map: !map
132
+ <<: *map
133
+ width: 800
134
+ height: 441
135
+ northArrow: *northArrow
136
+ scalebar: *scalebar
137
+ timezone: *timezone
138
+ datasource: *datasource
139
+ processors: *processors
140
+
141
+ 3 A3 portrait: !template
142
+ reportTemplate: A3_Portrait.jrxml
143
+ attributes:
144
+ title: *title
145
+ username: *username
146
+ comments: *comments
147
+ debug: *debug
148
+ legend: *legend
149
+ map: !map
150
+ <<: *map
151
+ width: 800
152
+ height: 1000
153
+ northArrow: *northArrow
154
+ scalebar: *scalebar
155
+ timezone: *timezone
156
+ datasource: *datasource
157
+ processors: *processors
158
+
159
+ 4 A3 landscape: !template
160
+ reportTemplate: A3_Landscape.jrxml
161
+ attributes:
162
+ title: *title
163
+ username: *username
164
+ comments: *comments
165
+ debug: *debug
166
+ legend: *legend
167
+ map: !map
168
+ <<: *map
169
+ width: 1150
170
+ height: 673
171
+ northArrow: *northArrow
172
+ scalebar: *scalebar
173
+ timezone: *timezone
174
+ datasource: *datasource
175
+ processors: *processors
@@ -0,0 +1,109 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="legend" columnCount="3" pageWidth="555" pageHeight="102" columnWidth="185" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="6b65086b-74e0-4bec-834b-1b74d5ae2d31">
3
+ <field name="name" class="java.lang.String"/>
4
+ <field name="report" class="java.lang.String"/>
5
+ <field name="icon" class="java.awt.Image"/>
6
+ <field name="level" class="java.lang.Integer"/>
7
+ <detail>
8
+ <!-- Always the same content except the x value (indent) per level and bold, for first level
9
+ text. Level 0 empty and ignored-->
10
+ <!--Level 1-->
11
+ <band height="15" splitType="Stretch">
12
+ <printWhenExpression><![CDATA[!$F{name}.equals("") && $F{level} <= 1]]></printWhenExpression>
13
+ <textField textAdjust="StretchHeight">
14
+ <reportElement x="0" y="0" width="185" height="15"/>
15
+ <box topPadding="10"/>
16
+ <textElement>
17
+ <font isBold="true"/>
18
+ </textElement>
19
+ <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
20
+ </textField>
21
+ </band>
22
+ <band height="15" splitType="Stretch">
23
+ <printWhenExpression><![CDATA[!$F{report}.equals("") && $F{level} <= 1]]></printWhenExpression>
24
+ <subreport>
25
+ <reportElement x="0" y="0" width="185" height="15" uuid="fa145068-76a5-4834-98ed-ce65b1976b3d">
26
+ <property name="local_mesure_unitheight" value="pixel"/>
27
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
28
+ </reportElement>
29
+ <subreportExpression><![CDATA[$F{report}]]></subreportExpression>
30
+ </subreport>
31
+ </band>
32
+ <!--Level 2-->
33
+ <band height="15" splitType="Stretch">
34
+ <printWhenExpression><![CDATA[!$F{name}.equals("") && $F{level} == 2]]></printWhenExpression>
35
+ <textField textAdjust="StretchHeight">
36
+ <reportElement x="10" y="0" width="185" height="15"/>
37
+ <box topPadding="10"/>
38
+ <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
39
+ </textField>
40
+ </band>
41
+ <band height="15" splitType="Stretch">
42
+ <printWhenExpression><![CDATA[!$F{report}.equals("") && $F{level} == 2]]></printWhenExpression>
43
+ <subreport>
44
+ <reportElement x="10" y="0" width="185" height="15" uuid="fa145068-76a5-4834-98ed-ce65b1976b3d">
45
+ <property name="local_mesure_unitheight" value="pixel"/>
46
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
47
+ </reportElement>
48
+ <subreportExpression><![CDATA[$F{report}]]></subreportExpression>
49
+ </subreport>
50
+ </band>
51
+ <!--Level 3-->
52
+ <band height="15" splitType="Stretch">
53
+ <printWhenExpression><![CDATA[!$F{name}.equals("") && $F{level} == 3]]></printWhenExpression>
54
+ <textField textAdjust="StretchHeight">
55
+ <reportElement x="20" y="0" width="185" height="15"/>
56
+ <box topPadding="10"/>
57
+ <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
58
+ </textField>
59
+ </band>
60
+ <band height="15" splitType="Stretch">
61
+ <printWhenExpression><![CDATA[!$F{report}.equals("") && $F{level} == 3]]></printWhenExpression>
62
+ <subreport>
63
+ <reportElement x="20" y="0" width="185" height="15" uuid="fa145068-76a5-4834-98ed-ce65b1976b3d">
64
+ <property name="local_mesure_unitheight" value="pixel"/>
65
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
66
+ </reportElement>
67
+ <subreportExpression><![CDATA[$F{report}]]></subreportExpression>
68
+ </subreport>
69
+ </band>
70
+ <!--Level 4-->
71
+ <band height="15" splitType="Stretch">
72
+ <printWhenExpression><![CDATA[!$F{name}.equals("") && $F{level} == 4]]></printWhenExpression>
73
+ <textField textAdjust="StretchHeight">
74
+ <reportElement x="30" y="0" width="185" height="15"/>
75
+ <box topPadding="10"/>
76
+ <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
77
+ </textField>
78
+ </band>
79
+ <band height="15" splitType="Stretch">
80
+ <printWhenExpression><![CDATA[!$F{report}.equals("") && $F{level} == 4]]></printWhenExpression>
81
+ <subreport>
82
+ <reportElement x="30" y="0" width="185" height="15" uuid="fa145068-76a5-4834-98ed-ce65b1976b3d">
83
+ <property name="local_mesure_unitheight" value="pixel"/>
84
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
85
+ </reportElement>
86
+ <subreportExpression><![CDATA[$F{report}]]></subreportExpression>
87
+ </subreport>
88
+ </band>
89
+ <!--Level 5-->
90
+ <band height="15" splitType="Stretch">
91
+ <printWhenExpression><![CDATA[!$F{name}.equals("") && $F{level} >= 5]]></printWhenExpression>
92
+ <textField textAdjust="StretchHeight">
93
+ <reportElement x="40" y="0" width="185" height="15"/>
94
+ <box topPadding="10"/>
95
+ <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
96
+ </textField>
97
+ </band>
98
+ <band height="15" splitType="Stretch">
99
+ <printWhenExpression><![CDATA[!$F{report}.equals("") && $F{level} >= 5]]></printWhenExpression>
100
+ <subreport>
101
+ <reportElement x="40" y="0" width="185" height="15" uuid="fa145068-76a5-4834-98ed-ce65b1976b3d">
102
+ <property name="local_mesure_unitheight" value="pixel"/>
103
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
104
+ </reportElement>
105
+ <subreportExpression><![CDATA[$F{report}]]></subreportExpression>
106
+ </subreport>
107
+ </band>
108
+ </detail>
109
+ </jasperReport>
@@ -0,0 +1,4 @@
1
+ date_pre = The
2
+ page = Page
3
+ info = Developed by Camptocamp SA, info@camptocamp.com
4
+ legend = LEGEND
@@ -0,0 +1,4 @@
1
+ date_pre = Le
2
+ page = Page
3
+ info = Développé par Camptocamp SA, info@camptocamp.com
4
+ legend = LÉGENDE
@@ -0,0 +1,93 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="140"
13
+ height="140"
14
+ id="svg2"
15
+ version="1.1"
16
+ inkscape:version="0.47 r22583"
17
+ sodipodi:docname="north.svg"
18
+ inkscape:export-filename="/home/sbrunner/nobackup/c2cgeoportal/svn/print/north.png"
19
+ inkscape:export-xdpi="90"
20
+ inkscape:export-ydpi="90">
21
+ <defs
22
+ id="defs4">
23
+ <inkscape:perspective
24
+ sodipodi:type="inkscape:persp3d"
25
+ inkscape:vp_x="0 : 526.18109 : 1"
26
+ inkscape:vp_y="0 : 1000 : 0"
27
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
28
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
29
+ id="perspective10" />
30
+ </defs>
31
+ <sodipodi:namedview
32
+ id="base"
33
+ pagecolor="#ffffff"
34
+ bordercolor="#666666"
35
+ borderopacity="1.0"
36
+ inkscape:pageopacity="0.0"
37
+ inkscape:pageshadow="2"
38
+ inkscape:zoom="5.8704606"
39
+ inkscape:cx="62.40214"
40
+ inkscape:cy="78.698265"
41
+ inkscape:document-units="px"
42
+ inkscape:current-layer="layer1"
43
+ showgrid="false"
44
+ inkscape:window-width="1680"
45
+ inkscape:window-height="999"
46
+ inkscape:window-x="0"
47
+ inkscape:window-y="24"
48
+ inkscape:window-maximized="1"
49
+ showguides="true"
50
+ inkscape:guide-bbox="true">
51
+ <sodipodi:guide
52
+ orientation="1,0"
53
+ position="70.049884,144.67949"
54
+ id="guide2817" />
55
+ </sodipodi:namedview>
56
+ <metadata
57
+ id="metadata7">
58
+ <rdf:RDF>
59
+ <cc:Work
60
+ rdf:about="">
61
+ <dc:format>image/svg+xml</dc:format>
62
+ <dc:type
63
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
64
+ <dc:title></dc:title>
65
+ </cc:Work>
66
+ </rdf:RDF>
67
+ </metadata>
68
+ <g
69
+ inkscape:label="Calque 1"
70
+ inkscape:groupmode="layer"
71
+ id="layer1"
72
+ transform="translate(0,-912.36218)">
73
+ <text
74
+ xml:space="preserve"
75
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
76
+ x="55.370926"
77
+ y="1052.3622"
78
+ id="text2816"><tspan
79
+ sodipodi:role="line"
80
+ id="tspan2818"
81
+ x="55.370926"
82
+ y="1052.3622">N</tspan></text>
83
+ <path
84
+ style="fill:#000000;stroke:none"
85
+ d="m 50.917813,1020.8351 38.164374,0 L 70.063395,912.31552 50.917813,1020.8351 z"
86
+ id="path2820" />
87
+ <path
88
+ id="path2815"
89
+ d="m 54.740888,1017.689 15.308996,0 0.01351,-88.05017 -15.322507,88.05017 z"
90
+ style="fill:#ffffff;stroke:none"
91
+ sodipodi:nodetypes="cccc" />
92
+ </g>
93
+ </svg>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="gmf16_A4_portrait" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
3
+ <field name="title" class="java.lang.String"/>
4
+ <field name="tableDataSource" class="net.sf.jasperreports.engine.data.JRMapCollectionDataSource"/>
5
+ <field name="tableSubReport" class="java.lang.String"/>
6
+ <detail>
7
+ <band height="65">
8
+ <textField>
9
+ <reportElement x="0" y="0" width="460" height="20" forecolor="#424242"/>
10
+ <textElement>
11
+ <font size="16" isBold="true"/>
12
+ </textElement>
13
+ <textFieldExpression><![CDATA["RÉSULTATS - " + $F{title}]]></textFieldExpression>
14
+ </textField>
15
+ <subreport>
16
+ <reportElement x="0" y="23" width="255" height="42"/>
17
+ <dataSourceExpression><![CDATA[$F{tableDataSource}]]></dataSourceExpression>
18
+ <subreportExpression><![CDATA[$F{tableSubReport}]]></subreportExpression>
19
+ </subreport>
20
+ <break>
21
+ <reportElement x="0" y="64" width="100" height="1"/>
22
+ </break>
23
+ </band>
24
+ </detail>
25
+ </jasperReport>
@@ -0,0 +1,18 @@
1
+ ---
2
+ project_folder: {{cookiecutter.project}}
3
+ project_package: {{cookiecutter.package}}
4
+ application_url: https://localhost:8484/
5
+ checker_url: https://172.17.0.1:8484/c2c/health_check?max_level=9
6
+ managed_files: []
7
+ unmanaged_files: []
8
+ template_vars:
9
+ package: {{cookiecutter.package}}
10
+ srid: {{cookiecutter.srid}}
11
+ extent: {{cookiecutter.extent}}
12
+ authtkt_secret: {{cookiecutter.authtkt_secret}}
13
+ env:
14
+ files:
15
+ - env.default
16
+ - env.project
17
+ required_args: 0
18
+ help: No arguments needed.
@@ -0,0 +1,7 @@
1
+ [tool.black]
2
+ line-length = 110
3
+ target-version = ['py39']
4
+
5
+ [tool.isort]
6
+ profile = "black"
7
+ line_length = 110
@@ -0,0 +1,15 @@
1
+ [{{cookiecutter.package}}]
2
+ host=${PGHOST_SLAVE}
3
+ port=${PGPORT_SLAVE}
4
+ #sslmode=${PGSSLMODE}
5
+ user=${PGUSER}
6
+ password=${PGPASSWORD}
7
+ dbname=${PGDATABASE}
8
+
9
+ [{{cookiecutter.package}}_master]
10
+ host=${PGHOST}
11
+ port=${PGPORT}
12
+ #sslmode=${PGSSLMODE}
13
+ user=${PGUSER}
14
+ password=${PGPASSWORD}
15
+ dbname=${PGDATABASE}
@@ -0,0 +1,11 @@
1
+ #!/bin/bash -eu
2
+ # Upgrade the DB.
3
+ #
4
+ # Mostly useful in a Docker environment.
5
+
6
+ for ini in *alembic*.ini; do
7
+ if [[ -f "$ini" ]]; then
8
+ echo "$ini ==========================="
9
+ alembic -c "$ini" upgrade head
10
+ fi
11
+ done
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env python3
2
+
3
+ # Copyright (c) 2021-2024, Camptocamp SA
4
+ # All rights reserved.
5
+
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+
9
+ # 1. Redistributions of source code must retain the above copyright notice, this
10
+ # list of conditions and the following disclaimer.
11
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+
15
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
19
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+
26
+ # The views and conclusions contained in the software and documentation are those
27
+ # of the authors and should not be interpreted as representing official policies,
28
+ # either expressed or implied, of the FreeBSD Project.
29
+
30
+
31
+ import argparse
32
+ import shlex
33
+ import subprocess
34
+ import sys
35
+
36
+
37
+ def main() -> None:
38
+ """Backup the database."""
39
+ parser = argparse.ArgumentParser(description="Backup the database.")
40
+ parser.add_argument("--verbose", action="store_true", help="Print the command that is executed.")
41
+ parser.add_argument(
42
+ "--dry-run", action="store_true", help="Only print the command that would be executed."
43
+ )
44
+ parser.add_argument(
45
+ "--env",
46
+ default=".env",
47
+ help="The env file to use to get the connection settings, by default we log in the composition "
48
+ "to do the dump.",
49
+ )
50
+ parser.add_argument(
51
+ "--arg",
52
+ action="append",
53
+ default=[],
54
+ help="Additional pg_dump argument, example: '--arg=--schema=main', may be used multiple times.",
55
+ )
56
+ parser.add_argument("file", help="The file path to backup")
57
+ args = parser.parse_args()
58
+
59
+ with open(args.file, "w", encoding="utf-8") as file_out:
60
+ if args.env:
61
+ env = {}
62
+ with open(args.env, encoding="utf-8") as file_env:
63
+ for line in file_env:
64
+ if line and line[0] != "#":
65
+ try:
66
+ index = line.index("=")
67
+ env[line[:index].strip()] = line[index + 1 :].strip()
68
+ except ValueError:
69
+ # Ignore lines that don't have a '='
70
+ pass
71
+ command1 = [
72
+ "docker",
73
+ "run",
74
+ "--rm",
75
+ "--env=PGHOST={}".format(env["PGHOST_SLAVE"]),
76
+ "--env=PGPORT={}".format(env["PGPORT_SLAVE"]),
77
+ "--env=PGUSER={}".format(env["PGUSER"]),
78
+ ]
79
+ command2 = ["--env=PGPASSWORD={}".format(env["PGPASSWORD"])]
80
+ command2_annon = ["--env=PGPASSWORD=***"]
81
+ command3 = [
82
+ *(["--env=PGSSLMODE={}".format(env["PGSSLMODE"])] if "PGSSLMODE" in env else []),
83
+ *(["--env=PGOPTIONS={}".format(env["PGOPTIONS"])] if "PGOPTIONS" in env else []),
84
+ "camptocamp/postgres:{}".format(env["POSTGRES_TAG"]),
85
+ "pg_dump",
86
+ "--format=c",
87
+ "--dbname={}".format(env["PGDATABASE"]),
88
+ *args.arg,
89
+ ]
90
+ if args.dry_run or args.verbose:
91
+ subprocess.run(
92
+ [
93
+ "docker",
94
+ "run",
95
+ "--rm",
96
+ "camptocamp/postgres:{}".format(env["POSTGRES_TAG"]),
97
+ "pg_dump",
98
+ "--version",
99
+ ]
100
+ )
101
+ print(shlex.join([*command1, *command2_annon, *command3]))
102
+ if args.dry_run:
103
+ sys.exit(0)
104
+ sys.exit(subprocess.run([*command1, *command2, *command3], stdout=file_out).returncode)
105
+ else:
106
+ command = [
107
+ "docker",
108
+ "compose",
109
+ "exec",
110
+ "-T",
111
+ "tools",
112
+ "bash",
113
+ "-c",
114
+ 'pg_dump --format=c --dbname="$PGDATABASE"',
115
+ *args.arg,
116
+ ]
117
+ if args.dry_run or args.verbose:
118
+ subprocess.run(["docker", "compose", "exec", "tools", "pg_dump", "--version"])
119
+ print(shlex.join(command))
120
+ if args.dry_run:
121
+ sys.exit(0)
122
+ sys.exit(subprocess.run(command, stdout=file_out).returncode)
123
+
124
+
125
+ if __name__ == "__main__":
126
+ main()