wasm-cli 1.2.0__tar.gz → 1.2.1__tar.gz

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 (183) hide show
  1. {wasm_cli-1.2.0/src/wasm_cli.egg-info → wasm_cli-1.2.1}/PKG-INFO +1 -1
  2. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/pyproject.toml +1 -1
  3. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/setup.py +1 -1
  4. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/__init__.py +1 -1
  5. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/store.py +33 -5
  6. {wasm_cli-1.2.0 → wasm_cli-1.2.1/src/wasm_cli.egg-info}/PKG-INFO +1 -1
  7. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/LICENSE +0 -0
  8. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/MANIFEST.in +0 -0
  9. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/README.md +0 -0
  10. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/docs/MONITOR.md +0 -0
  11. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/docs/OBS_SETUP.md +0 -0
  12. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/docs/assets/logo.png +0 -0
  13. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/docs/assets/logo_bg.png +0 -0
  14. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/docs/superpowers/specs/2026-08-12-wasm-panel-design-direction.md +0 -0
  15. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/docs/superpowers/specs/2026-08-12-wasm-v1-refactor-design.md +0 -0
  16. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/man/wasm.1 +0 -0
  17. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/setup.cfg +0 -0
  18. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/__main__.py +0 -0
  19. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/__init__.py +0 -0
  20. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/app.py +0 -0
  21. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/__init__.py +0 -0
  22. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/backup.py +0 -0
  23. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/cert.py +0 -0
  24. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/config.py +0 -0
  25. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/db.py +0 -0
  26. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/env.py +0 -0
  27. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/health.py +0 -0
  28. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/monitor.py +0 -0
  29. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/service.py +0 -0
  30. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/setup.py +0 -0
  31. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/site.py +0 -0
  32. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/store.py +0 -0
  33. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/version.py +0 -0
  34. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/web.py +0 -0
  35. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/commands/webapp.py +0 -0
  36. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/interactive.py +0 -0
  37. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/cli/prompts.py +0 -0
  38. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/completions/README.md +0 -0
  39. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/completions/_wasm +0 -0
  40. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/completions/wasm.bash +0 -0
  41. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/completions/wasm.fish +0 -0
  42. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/__init__.py +0 -0
  43. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/app_state.py +0 -0
  44. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/config.py +0 -0
  45. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/dependencies.py +0 -0
  46. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/exceptions.py +0 -0
  47. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/fs.py +0 -0
  48. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/logger.py +0 -0
  49. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/net.py +0 -0
  50. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/runner.py +0 -0
  51. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/update_checker.py +0 -0
  52. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/core/utils.py +0 -0
  53. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/__init__.py +0 -0
  54. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/auto.py +0 -0
  55. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/base.py +0 -0
  56. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/docker_compose.py +0 -0
  57. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/__init__.py +0 -0
  58. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/env_manager.py +0 -0
  59. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/health.py +0 -0
  60. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/nginx_config.py +0 -0
  61. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/package_manager.py +0 -0
  62. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/path_resolver.py +0 -0
  63. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/preflight.py +0 -0
  64. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/prisma.py +0 -0
  65. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/registration.py +0 -0
  66. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/summary.py +0 -0
  67. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/turbo.py +0 -0
  68. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/helpers/workspace.py +0 -0
  69. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/interface.py +0 -0
  70. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/monorepo.py +0 -0
  71. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/nextjs.py +0 -0
  72. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/nodejs.py +0 -0
  73. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/pipeline.py +0 -0
  74. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/python.py +0 -0
  75. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/registry.py +0 -0
  76. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/static.py +0 -0
  77. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/deployers/vite.py +0 -0
  78. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/main.py +0 -0
  79. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/__init__.py +0 -0
  80. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/apache_manager.py +0 -0
  81. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/backup_manager.py +0 -0
  82. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/backup_scheduler.py +0 -0
  83. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/base_manager.py +0 -0
  84. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/cert_manager.py +0 -0
  85. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/database/__init__.py +0 -0
  86. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/database/base.py +0 -0
  87. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/database/mongodb.py +0 -0
  88. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/database/mysql.py +0 -0
  89. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/database/postgres.py +0 -0
  90. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/database/redis.py +0 -0
  91. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/database/registry.py +0 -0
  92. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/nginx_manager.py +0 -0
  93. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/service_manager.py +0 -0
  94. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/source_manager.py +0 -0
  95. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/managers/webserver.py +0 -0
  96. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/monitor/__init__.py +0 -0
  97. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/monitor/email_notifier.py +0 -0
  98. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/monitor/metrics.py +0 -0
  99. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/monitor/models.py +0 -0
  100. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/monitor/observation_store.py +0 -0
  101. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/monitor/process_monitor.py +0 -0
  102. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/monitor/signals.py +0 -0
  103. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/__init__.py +0 -0
  104. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/apache/proxy.conf.j2 +0 -0
  105. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/apache/static.conf.j2 +0 -0
  106. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/nginx/advanced.conf.j2 +0 -0
  107. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/nginx/monorepo.conf.j2 +0 -0
  108. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/nginx/proxy.conf.j2 +0 -0
  109. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/nginx/static.conf.j2 +0 -0
  110. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/systemd/_escape.j2 +0 -0
  111. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/systemd/app.service.j2 +0 -0
  112. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/systemd/backup-service.j2 +0 -0
  113. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/systemd/backup-timer.j2 +0 -0
  114. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/templates/systemd/docker-compose.service.j2 +0 -0
  115. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/validators/__init__.py +0 -0
  116. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/validators/domain.py +0 -0
  117. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/validators/environment.py +0 -0
  118. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/validators/names.py +0 -0
  119. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/validators/port.py +0 -0
  120. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/validators/source.py +0 -0
  121. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/validators/ssh.py +0 -0
  122. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/__init__.py +0 -0
  123. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/__init__.py +0 -0
  124. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/apps.py +0 -0
  125. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/auth.py +0 -0
  126. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/backups.py +0 -0
  127. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/certs.py +0 -0
  128. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/config.py +0 -0
  129. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/databases.py +0 -0
  130. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/deps.py +0 -0
  131. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/jobs.py +0 -0
  132. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/monitor.py +0 -0
  133. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/router.py +0 -0
  134. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/services.py +0 -0
  135. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/sites.py +0 -0
  136. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/api/system.py +0 -0
  137. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/auth.py +0 -0
  138. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/events.py +0 -0
  139. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/jobs.py +0 -0
  140. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/server.py +0 -0
  141. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/app.css +0 -0
  142. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/logo.png +0 -0
  143. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/logo.webp +0 -0
  144. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/panel.js +0 -0
  145. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  146. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  147. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/fonts/ibm-plex-sans-condensed-latin-500-normal.woff2 +0 -0
  148. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/fonts/ibm-plex-sans-condensed-latin-600-normal.woff2 +0 -0
  149. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
  150. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
  151. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
  152. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/htmx.min.js +0 -0
  153. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/uplot.min.css +0 -0
  154. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/uplot.min.js +0 -0
  155. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/xterm.css +0 -0
  156. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/static/vendor/xterm.js +0 -0
  157. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/_macros.html +0 -0
  158. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/base.html +0 -0
  159. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/fragments/machine.html +0 -0
  160. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/login.html +0 -0
  161. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/activity.html +0 -0
  162. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/app.html +0 -0
  163. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/backups.html +0 -0
  164. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/certificates.html +0 -0
  165. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/dashboard.html +0 -0
  166. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/deploy.html +0 -0
  167. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/failure.html +0 -0
  168. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/missing.html +0 -0
  169. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/resources.html +0 -0
  170. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/templates/pages/settings.html +0 -0
  171. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/views/__init__.py +0 -0
  172. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/views/context.py +0 -0
  173. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/views/machine.py +0 -0
  174. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/views/rendering.py +0 -0
  175. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/views/resources.py +0 -0
  176. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/views/router.py +0 -0
  177. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/websockets/__init__.py +0 -0
  178. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm/web/websockets/router.py +0 -0
  179. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm_cli.egg-info/SOURCES.txt +0 -0
  180. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm_cli.egg-info/dependency_links.txt +0 -0
  181. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm_cli.egg-info/entry_points.txt +0 -0
  182. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm_cli.egg-info/requires.txt +0 -0
  183. {wasm_cli-1.2.0 → wasm_cli-1.2.1}/src/wasm_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wasm-cli
3
- Version: 1.2.0
3
+ Version: 1.2.1
4
4
  Summary: Web App System Management - Deploy and manage web applications on Linux servers
5
5
  Author: Yago López Prado
6
6
  Author-email: Yago López Prado <yago.lopez.adeje@gmail.com>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "wasm-cli"
7
- version = "1.2.0"
7
+ version = "1.2.1"
8
8
  description = "Web App System Management - Deploy and manage web applications on Linux servers"
9
9
  readme = "README.md"
10
10
  license = { text = "WASM-NCSAL" }
@@ -9,7 +9,7 @@ from setuptools import setup, find_packages
9
9
 
10
10
  setup(
11
11
  name="wasm-cli",
12
- version="1.2.0",
12
+ version="1.2.1",
13
13
  description="Web App System Management - Deploy and manage web applications on Linux servers",
14
14
  author="Yago López Prado",
15
15
  author_email="yago.lopez.adeje@gmail.com",
@@ -15,7 +15,7 @@ from importlib.metadata import version as _installed_version
15
15
  #: as an OBS build directory. The single source of truth is the ``version``
16
16
  #: field of pyproject.toml; ``scripts/release.py`` keeps this literal and the
17
17
  #: distribution packaging files in step with it.
18
- _FALLBACK_VERSION = "1.2.0"
18
+ _FALLBACK_VERSION = "1.2.1"
19
19
 
20
20
  try:
21
21
  __version__ = _installed_version("wasm-cli")
@@ -433,14 +433,30 @@ class WASMStore:
433
433
 
434
434
  Priority:
435
435
  1. Explicit path provided
436
- 2. System path if writable (/var/lib/wasm/)
437
- 3. User path (~/.local/share/wasm/)
436
+ 2. A database that already exists, system before user
437
+ 3. System path if writable (/var/lib/wasm/)
438
+ 4. User path (~/.local/share/wasm/)
438
439
 
439
440
  Nothing is created here. Deciding *where* the database lives is a
440
- question, not a change, and the previous version answered it by trying
441
- to create the directory, so merely resolving a path left a directory
441
+ question, not a change, and an early version answered it by trying to
442
+ create the directory, so merely resolving a path left a directory
442
443
  behind on a run that was supposed to change nothing.
443
444
 
445
+ **Why an existing database outranks the system location.** The choice
446
+ used to be made purely on whether ``/var/lib/wasm`` happened to exist
447
+ and be writable, so it changed the moment somebody created that
448
+ directory - a packaging change, an administrator, or WASM's own monitor
449
+ service, which needs it. On a server whose inventory had always lived
450
+ under ``~/.local/share``, ``wasm list`` then answered "No applications
451
+ deployed" about a machine serving seventeen sites. Nothing was lost and
452
+ nothing said so, which is the worst way for a tool to be wrong: the
453
+ records were one directory away and the operator was told they did not
454
+ exist.
455
+
456
+ Falling back to a database that is actually there removes the failure
457
+ entirely. A fresh machine still gets the system path, because neither
458
+ file exists and rule 3 decides it.
459
+
444
460
  Args:
445
461
  db_path: Explicit database path, if the caller has one.
446
462
 
@@ -450,7 +466,19 @@ class WASMStore:
450
466
  if db_path:
451
467
  return Path(db_path)
452
468
 
453
- if DEFAULT_DB_PATH.parent.is_dir() and os.access(DEFAULT_DB_PATH.parent, os.W_OK):
469
+ system_writable = DEFAULT_DB_PATH.parent.is_dir() and os.access(
470
+ DEFAULT_DB_PATH.parent, os.W_OK
471
+ )
472
+
473
+ # An inventory that exists wins over one that would be created. Two
474
+ # empty files, or none at all, fall through to the usual preference.
475
+ for candidate in (DEFAULT_DB_PATH, USER_DB_PATH):
476
+ if candidate.is_file() and candidate.stat().st_size > 0:
477
+ if candidate == DEFAULT_DB_PATH and not system_writable:
478
+ continue
479
+ return candidate
480
+
481
+ if system_writable:
454
482
  return DEFAULT_DB_PATH
455
483
 
456
484
  return USER_DB_PATH
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wasm-cli
3
- Version: 1.2.0
3
+ Version: 1.2.1
4
4
  Summary: Web App System Management - Deploy and manage web applications on Linux servers
5
5
  Author: Yago López Prado
6
6
  Author-email: Yago López Prado <yago.lopez.adeje@gmail.com>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes