splent-cli 1.9.0__tar.gz → 1.9.2__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 (167) hide show
  1. {splent_cli-1.9.0/src/splent_cli.egg-info → splent_cli-1.9.2}/PKG-INFO +1 -1
  2. {splent_cli-1.9.0 → splent_cli-1.9.2}/pyproject.toml +1 -1
  3. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_refine.py +28 -0
  4. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_up.py +30 -0
  5. {splent_cli-1.9.0 → splent_cli-1.9.2/src/splent_cli.egg-info}/PKG-INFO +1 -1
  6. {splent_cli-1.9.0 → splent_cli-1.9.2}/LICENSE +0 -0
  7. {splent_cli-1.9.0 → splent_cli-1.9.2}/README.md +0 -0
  8. {splent_cli-1.9.0 → splent_cli-1.9.2}/setup.cfg +0 -0
  9. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/__init__.py +0 -0
  10. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/__main__.py +0 -0
  11. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/cli.py +0 -0
  12. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/__init__.py +0 -0
  13. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/__init__.py +0 -0
  14. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_clear.py +0 -0
  15. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_orphans.py +0 -0
  16. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_outdated.py +0 -0
  17. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_prune.py +0 -0
  18. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_size.py +0 -0
  19. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_status.py +0 -0
  20. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_usage.py +0 -0
  21. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/cache/cache_versions.py +0 -0
  22. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/__init__.py +0 -0
  23. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_deps.py +0 -0
  24. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_docker.py +0 -0
  25. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_env.py +0 -0
  26. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_features.py +0 -0
  27. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_github.py +0 -0
  28. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_infra.py +0 -0
  29. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_product.py +0 -0
  30. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_pypi.py +0 -0
  31. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/check/check_pyproject.py +0 -0
  32. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/clear/__init__.py +0 -0
  33. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/clear/clear_build.py +0 -0
  34. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/clear/clear_log.py +0 -0
  35. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/clear/clear_uploads.py +0 -0
  36. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/command/__init__.py +0 -0
  37. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/command/command_create.py +0 -0
  38. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/coverage.py +0 -0
  39. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_console.py +0 -0
  40. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_dump.py +0 -0
  41. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_migrate.py +0 -0
  42. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_reset.py +0 -0
  43. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_restore.py +0 -0
  44. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_rollback.py +0 -0
  45. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_seed.py +0 -0
  46. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_status.py +0 -0
  47. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/database/db_upgrade.py +0 -0
  48. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/doctor.py +0 -0
  49. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/env/env_list.py +0 -0
  50. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/env/env_set.py +0 -0
  51. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/env/env_show.py +0 -0
  52. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/export/__init__.py +0 -0
  53. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/export/export_puml.py +0 -0
  54. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_add.py +0 -0
  55. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_attach.py +0 -0
  56. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_clean.py +0 -0
  57. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_clone.py +0 -0
  58. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_compat.py +0 -0
  59. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_compile.py +0 -0
  60. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_contract.py +0 -0
  61. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_create.py +0 -0
  62. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_delete.py +0 -0
  63. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_detach.py +0 -0
  64. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_discard.py +0 -0
  65. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_drift.py +0 -0
  66. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_env.py +0 -0
  67. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_fork.py +0 -0
  68. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_git.py +0 -0
  69. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_hook_add.py +0 -0
  70. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_hook_remove.py +0 -0
  71. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_hooks.py +0 -0
  72. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_impact.py +0 -0
  73. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_inject_config.py +0 -0
  74. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_install.py +0 -0
  75. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_list.py +0 -0
  76. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_order.py +0 -0
  77. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_outdated.py +0 -0
  78. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_pin.py +0 -0
  79. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_pip_install.py +0 -0
  80. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_pull.py +0 -0
  81. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_release.py +0 -0
  82. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_remove.py +0 -0
  83. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_rename.py +0 -0
  84. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_search.py +0 -0
  85. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_status.py +0 -0
  86. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_sync_template.py +0 -0
  87. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_test.py +0 -0
  88. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_translate.py +0 -0
  89. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_unlock.py +0 -0
  90. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_upgrade.py +0 -0
  91. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_versions.py +0 -0
  92. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/feature/feature_xray.py +0 -0
  93. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/lint.py +0 -0
  94. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/locust.py +0 -0
  95. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/__init__.py +0 -0
  96. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_auto_require.py +0 -0
  97. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_build.py +0 -0
  98. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_clean.py +0 -0
  99. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_commands.py +0 -0
  100. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_config.py +0 -0
  101. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_configure.py +0 -0
  102. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_console.py +0 -0
  103. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_containers.py +0 -0
  104. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_create.py +0 -0
  105. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_deploy.py +0 -0
  106. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_derive.py +0 -0
  107. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_deselect.py +0 -0
  108. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_down.py +0 -0
  109. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_drift.py +0 -0
  110. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_env.py +0 -0
  111. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_list.py +0 -0
  112. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_logs.py +0 -0
  113. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_missing.py +0 -0
  114. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_port.py +0 -0
  115. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_release.py +0 -0
  116. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_resolve.py +0 -0
  117. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_restart.py +0 -0
  118. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_routes.py +0 -0
  119. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_run.py +0 -0
  120. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_select.py +0 -0
  121. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_shell.py +0 -0
  122. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_signals.py +0 -0
  123. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_sync_template.py +0 -0
  124. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_test.py +0 -0
  125. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/product/product_validate.py +0 -0
  126. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/release/__init__.py +0 -0
  127. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/release/release_core.py +0 -0
  128. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/selenium.py +0 -0
  129. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/__init__.py +0 -0
  130. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_add_constraints.py +0 -0
  131. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_add_feature.py +0 -0
  132. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_configurations.py +0 -0
  133. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_create.py +0 -0
  134. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_deps.py +0 -0
  135. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_features.py +0 -0
  136. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_fetch.py +0 -0
  137. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_info.py +0 -0
  138. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_list.py +0 -0
  139. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/spl/spl_utils.py +0 -0
  140. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/tokens_setup.py +0 -0
  141. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/uvl/uvl_utils.py +0 -0
  142. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/commands/version.py +0 -0
  143. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/services/__init__.py +0 -0
  144. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/services/compose.py +0 -0
  145. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/services/context.py +0 -0
  146. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/services/preflight.py +0 -0
  147. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/services/release.py +0 -0
  148. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/__init__.py +0 -0
  149. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/cache_utils.py +0 -0
  150. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/command_loader.py +0 -0
  151. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/contract_freshness.py +0 -0
  152. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/db_utils.py +0 -0
  153. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/decorators.py +0 -0
  154. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/dynamic_imports.py +0 -0
  155. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/feature_installer.py +0 -0
  156. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/feature_utils.py +0 -0
  157. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/git_url.py +0 -0
  158. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/integrity.py +0 -0
  159. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/lifecycle.py +0 -0
  160. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/manifest.py +0 -0
  161. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/path_utils.py +0 -0
  162. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli/utils/template_drift.py +0 -0
  163. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli.egg-info/SOURCES.txt +0 -0
  164. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli.egg-info/dependency_links.txt +0 -0
  165. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli.egg-info/entry_points.txt +0 -0
  166. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli.egg-info/requires.txt +0 -0
  167. {splent_cli-1.9.0 → splent_cli-1.9.2}/src/splent_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: splent_cli
3
- Version: 1.9.0
3
+ Version: 1.9.2
4
4
  Summary: SPLENT-CLI is a CLI to be able to work on your development more easily.
5
5
  Author-email: DiversoLab <diversolab@us.es>
6
6
  Project-URL: Homepage, https://github.com/diverso-lab/splent_cli
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "splent_cli"
7
- version = "1.9.0"
7
+ version = "1.9.2"
8
8
  description = "SPLENT-CLI is a CLI to be able to work on your development more easily."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -871,6 +871,34 @@ def feature_refinement(refiner_name):
871
871
  except Exception:
872
872
  pass
873
873
 
874
+ # ── Register the refinement in the active product ───────────────
875
+ # A refinement only takes effect once the feature is part of the product
876
+ # (migrations, composition, feature:xray). Add it now so the user does not
877
+ # have to remember a separate `feature:add`. Reuse the org convention of the
878
+ # existing product features; idempotent (feature:add is a no-op if present).
879
+ try:
880
+ from splent_cli.commands.feature.feature_add import feature_add
881
+
882
+ org = ns
883
+ product_pyproject = os.path.join(workspace, product, "pyproject.toml")
884
+ with open(product_pyproject, "rb") as f:
885
+ existing = read_features_from_data(tomllib.load(f))
886
+ for entry in existing:
887
+ if "/" in entry:
888
+ org = entry.split("/", 1)[0]
889
+ break
890
+
891
+ click.echo()
892
+ feature_add.callback(f"{org}/{refiner_name}", env_scope=None)
893
+ except SystemExit:
894
+ raise
895
+ except Exception as exc:
896
+ click.secho(
897
+ f" note: could not auto-add to product ({exc}). "
898
+ f"Run: splent feature:add {ns}/{refiner_name}",
899
+ fg="yellow",
900
+ )
901
+
874
902
  click.echo()
875
903
  click.secho(" done.", fg="green")
876
904
  click.echo()
@@ -10,6 +10,32 @@ from splent_cli.services import compose, context
10
10
  from splent_cli.utils.feature_utils import read_features_from_data
11
11
 
12
12
 
13
+ def _sync_splent_env(product_path: str, env: str) -> None:
14
+ """Write ``SPLENT_ENV=<env>`` into the product's ``docker/.env``.
15
+
16
+ Keeps the persisted environment in sync with the ``--dev``/``--prod`` flag so a
17
+ product that was previously deployed (which sets ``SPLENT_ENV=prod``) can return
18
+ to development with ``product:up --dev`` / ``product:derive --dev``. The container
19
+ is (re)created right after this, so it picks up the updated value.
20
+ """
21
+ env_path = os.path.join(product_path, "docker", ".env")
22
+ if not os.path.isfile(env_path):
23
+ return
24
+ lines = []
25
+ found = False
26
+ with open(env_path, "r", encoding="utf-8") as f:
27
+ for line in f:
28
+ if line.strip().startswith("SPLENT_ENV="):
29
+ lines.append(f"SPLENT_ENV={env}\n")
30
+ found = True
31
+ else:
32
+ lines.append(line)
33
+ if not found:
34
+ lines.append(f"SPLENT_ENV={env}\n")
35
+ with open(env_path, "w", encoding="utf-8") as f:
36
+ f.writelines(lines)
37
+
38
+
13
39
  def _check_docker_running():
14
40
  """Exit with a clear message if the Docker daemon is not reachable."""
15
41
  result = subprocess.run(
@@ -182,6 +208,10 @@ def product_up(dev, prod):
182
208
  workspace = str(context.workspace())
183
209
  product_path = compose.product_path(product, workspace)
184
210
 
211
+ # Persist the resolved environment so a previously deployed (prod) product can
212
+ # cleanly return to dev — the container is recreated below with the new value.
213
+ _sync_splent_env(product_path, env)
214
+
185
215
  failed: list[str] = []
186
216
  started: list[str] = []
187
217
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: splent_cli
3
- Version: 1.9.0
3
+ Version: 1.9.2
4
4
  Summary: SPLENT-CLI is a CLI to be able to work on your development more easily.
5
5
  Author-email: DiversoLab <diversolab@us.es>
6
6
  Project-URL: Homepage, https://github.com/diverso-lab/splent_cli
File without changes
File without changes
File without changes