machineconfig 7.55__tar.gz → 7.56__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.

Potentially problematic release.


This version of machineconfig might be problematic. Click here for more details.

Files changed (458) hide show
  1. {machineconfig-7.55/src/machineconfig.egg-info → machineconfig-7.56}/PKG-INFO +39 -5
  2. machineconfig-7.56/README.md +81 -0
  3. {machineconfig-7.55 → machineconfig-7.56}/pyproject.toml +2 -1
  4. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/installer_data.json +8 -8
  5. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/croshell.py +4 -4
  6. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  7. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +18 -8
  8. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
  9. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +7 -2
  10. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
  11. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_utils/path.py +1 -1
  12. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/interactive.py +1 -1
  13. machineconfig-7.55/src/machineconfig/scripts/python/nw/add_ssh_key.py → machineconfig-7.56/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +14 -12
  14. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  15. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/wezterm/wezterm.lua +1 -1
  16. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
  17. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
  18. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/installer_utils/installer_class.py +4 -0
  19. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/path_extended.py +38 -17
  20. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/ssh.py +1 -1
  21. {machineconfig-7.55 → machineconfig-7.56/src/machineconfig.egg-info}/PKG-INFO +39 -5
  22. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig.egg-info/SOURCES.txt +0 -1
  23. machineconfig-7.55/README.md +0 -47
  24. machineconfig-7.55/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -134
  25. {machineconfig-7.55 → machineconfig-7.56}/MANIFEST.in +0 -0
  26. {machineconfig-7.55 → machineconfig-7.56}/setup.cfg +0 -0
  27. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/__init__.py +0 -0
  28. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/__init__.py +0 -0
  29. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  30. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  31. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/distribute.py +0 -0
  32. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  33. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/job_params.py +0 -0
  34. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  35. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  36. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  37. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  38. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  39. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  40. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  41. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  42. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
  43. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
  44. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  45. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
  46. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  47. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  48. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  49. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  50. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  51. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +0 -0
  52. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +0 -0
  53. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  54. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  55. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  56. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  57. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +0 -0
  58. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +0 -0
  59. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  60. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  61. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  62. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  63. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  64. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  65. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  66. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  67. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  68. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  69. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  70. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
  71. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
  72. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
  73. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
  74. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/templates/__init__.py +0 -0
  75. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  76. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/__init__.py +0 -0
  77. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/__init__.py +0 -0
  78. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/check_installations.py +0 -0
  79. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom/boxes.py +0 -0
  80. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  81. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  82. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  83. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  84. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  85. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  86. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  87. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  88. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
  89. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  90. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  91. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  92. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  93. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  94. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  95. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/sysabc.py +0 -0
  96. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  97. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  98. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  99. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  100. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  101. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  102. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/lid.sh +0 -0
  103. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  104. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/network.sh +0 -0
  105. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  106. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  107. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  108. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  109. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  110. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  111. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  112. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  113. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  114. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/logger.py +0 -0
  115. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/__init__.py +0 -0
  116. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/backup.toml +0 -0
  117. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
  118. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/create_helper.py +0 -0
  119. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/create_links.py +0 -0
  120. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/create_links_export.py +0 -0
  121. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/create_shell_profile.py +0 -0
  122. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/mapper.toml +0 -0
  123. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  124. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  125. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  126. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  127. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  128. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
  129. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/__init__.py +0 -0
  130. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
  131. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
  132. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/linux/other/start_docker +0 -0
  133. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
  134. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/linux/wrap_mcfg +0 -0
  135. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/nu/wrap_mcfg.nu +0 -0
  136. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/__init__.py +0 -0
  137. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/agents.py +0 -0
  138. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  139. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
  140. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
  141. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  142. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  143. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  144. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  145. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  146. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  147. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  148. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  149. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  150. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  151. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  152. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  153. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  154. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  155. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  156. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  157. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  158. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  159. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  160. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  161. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  162. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  163. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  164. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  165. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  166. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  167. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ai/vscode_tasks.py +0 -0
  168. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/cloud.py +0 -0
  169. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/define.py +0 -0
  170. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/devops.py +0 -0
  171. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
  172. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
  173. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
  174. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/explore.py +0 -0
  175. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  176. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/ftpx.py +0 -0
  177. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/__init__.py +0 -0
  178. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/__init__.py +0 -0
  179. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +0 -0
  180. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +0 -0
  181. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +0 -0
  182. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +0 -0
  183. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +0 -0
  184. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +0 -0
  185. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/fire_agents_help_search.py +0 -0
  186. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +0 -0
  187. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +0 -0
  188. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/templates/prompt.txt +0 -0
  189. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/templates/template.ps1 +0 -0
  190. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_agents/templates/template.sh +0 -0
  191. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_cloud/__init__.py +0 -0
  192. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_cloud/cloud_copy.py +0 -0
  193. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +0 -0
  194. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_cloud/cloud_mount.py +0 -0
  195. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_cloud/cloud_sync.py +0 -0
  196. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_cloud/helpers2.py +0 -0
  197. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_cloud/helpers5.py +0 -0
  198. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_croshell/__init__.py +0 -0
  199. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_croshell/crosh.py +0 -0
  200. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_croshell/pomodoro.py +0 -0
  201. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_croshell/scheduler.py +0 -0
  202. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_croshell/start_slidev.py +0 -0
  203. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_croshell/viewer.py +0 -0
  204. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_croshell/viewer_template.py +0 -0
  205. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/__init__.py +0 -0
  206. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_config.py +0 -0
  207. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_data.py +0 -0
  208. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_nw.py +0 -0
  209. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -0
  210. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_share_file.py +0 -0
  211. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -0
  212. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_terminal.py +0 -0
  213. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -0
  214. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -0
  215. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/devops_status.py +0 -0
  216. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/devops_update_repos.py +0 -0
  217. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/themes/__init__.py +0 -0
  218. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
  219. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -0
  220. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
  221. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +0 -0
  222. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  223. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
  224. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +0 -0
  225. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  226. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
  227. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  228. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/__init__.py +0 -0
  229. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -0
  230. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +0 -0
  231. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -0
  232. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -0
  233. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -0
  234. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +0 -0
  235. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -0
  236. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_navigator/__init__.py +0 -0
  237. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_navigator/command_builder.py +0 -0
  238. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -0
  239. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -0
  240. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_navigator/data_models.py +0 -0
  241. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_navigator/main_app.py +0 -0
  242. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_navigator/search_bar.py +0 -0
  243. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/action.py +0 -0
  244. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/action_helper.py +0 -0
  245. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/clone.py +0 -0
  246. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/count_lines.py +0 -0
  247. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -0
  248. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
  249. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/record.py +0 -0
  250. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/sync.py +0 -0
  251. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_repos/update.py +0 -0
  252. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_sessions/__init__.py +0 -0
  253. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +0 -0
  254. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/machineconfig.py +0 -0
  255. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/msearch.py +0 -0
  256. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
  257. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
  258. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
  259. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/mount_nfs +0 -0
  260. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
  261. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
  262. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
  263. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
  264. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
  265. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
  266. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -0
  267. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -0
  268. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
  269. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
  270. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/sessions.py +0 -0
  271. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/terminal.py +0 -0
  272. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/python/utils.py +0 -0
  273. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
  274. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
  275. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
  276. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
  277. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
  278. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
  279. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/scripts/windows/wrap_mcfg.ps1 +0 -0
  280. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/__init__.py +0 -0
  281. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/broot/br.sh +0 -0
  282. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  283. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/broot/conf.toml +0 -0
  284. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/glow/glow.yml +0 -0
  285. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  286. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/helix/config.toml +0 -0
  287. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/helix/languages.toml +0 -0
  288. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/helix/yazi-picker.sh +0 -0
  289. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/keras/keras.json +0 -0
  290. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  291. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  292. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  293. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  294. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  295. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  296. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  297. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  298. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  299. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  300. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/colors +0 -0
  301. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  302. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  303. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  304. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  305. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  306. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/icons +0 -0
  307. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  308. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  309. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  310. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  311. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  312. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  313. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  314. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  315. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  316. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  317. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  318. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/colors +0 -0
  319. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  320. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/icons +0 -0
  321. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  322. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  323. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  324. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  325. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  326. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  327. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  328. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/linters/.flake8 +0 -0
  329. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  330. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/linters/.pylintrc +0 -0
  331. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  332. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  333. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  334. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  335. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  336. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/marimo/marimo.toml +0 -0
  337. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/marimo/snippets/globalize.py +0 -0
  338. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  339. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/mprocs/windows/other +0 -0
  340. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  341. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  342. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/procs/.procs.toml +0 -0
  343. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  344. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/rofi/config.rasi +0 -0
  345. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  346. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  347. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  348. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  349. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  350. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  351. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  352. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  353. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  354. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  355. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  356. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/nushell/init.nu +0 -0
  357. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  358. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  359. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  360. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  361. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  362. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/shells/zsh/init.sh +0 -0
  363. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/streamlit/config.toml +0 -0
  364. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  365. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  366. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  367. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/tere/terecd.sh +0 -0
  368. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  369. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  370. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  371. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/yazi/init.lua +0 -0
  372. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/yazi/keymap_linux.toml +0 -0
  373. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/yazi/keymap_windows.toml +0 -0
  374. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/yazi/shell/yazi_cd.ps1 +0 -0
  375. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/yazi/shell/yazi_cd.sh +0 -0
  376. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/yazi/theme.toml +0 -0
  377. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  378. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zed/settings.json +0 -0
  379. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  380. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  381. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/config.kdl +0 -0
  382. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  383. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  384. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  385. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  386. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  387. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  388. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/__init__.py +0 -0
  389. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  390. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  391. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/others/android.sh +0 -0
  392. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/others/cli_installation.sh +0 -0
  393. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  394. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  395. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  396. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_linux/uv.sh +0 -0
  397. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_mac/__init__.py +0 -0
  398. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_mac/apps_gui.sh +0 -0
  399. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_mac/ssh/openssh_setup.sh +0 -0
  400. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_mac/uv.sh +0 -0
  401. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/__init__.py +0 -0
  402. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  403. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  404. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  405. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
  406. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
  407. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  408. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/ssh/openssh-server_add_key.ps1 +0 -0
  409. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/ssh/openssh-server_copy-ssh-id.ps1 +0 -0
  410. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/uv.ps1 +0 -0
  411. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +0 -0
  412. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  413. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  414. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/__init__.py +0 -0
  415. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/accessories.py +0 -0
  416. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/ai/__init__.py +0 -0
  417. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
  418. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  419. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  420. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/code.py +0 -0
  421. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/art/fat_croco.txt +0 -0
  422. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/art/halfwit_croco.txt +0 -0
  423. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/art/happy_croco.txt +0 -0
  424. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/art/water_croco.txt +0 -0
  425. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/ascii_art.py +0 -0
  426. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/dbms.py +0 -0
  427. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/headers.py +0 -0
  428. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
  429. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
  430. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/files/read.py +0 -0
  431. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/installer.py +0 -0
  432. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  433. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  434. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  435. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  436. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/io.py +0 -0
  437. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/links.py +0 -0
  438. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/meta.py +0 -0
  439. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/notifications.py +0 -0
  440. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/options.py +0 -0
  441. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/path_helper.py +0 -0
  442. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/procs.py +0 -0
  443. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/scheduler.py +0 -0
  444. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/scheduling.py +0 -0
  445. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  446. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  447. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  448. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  449. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/source_of_truth.py +0 -0
  450. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
  451. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/terminal.py +0 -0
  452. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/tst.py +0 -0
  453. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/upgrade_packages.py +0 -0
  454. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig/utils/ve.py +0 -0
  455. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  456. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig.egg-info/entry_points.txt +0 -0
  457. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig.egg-info/requires.txt +0 -0
  458. {machineconfig-7.55 → machineconfig-7.56}/src/machineconfig.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 7.55
3
+ Version: 7.56
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -51,10 +51,43 @@ Requires-Dist: python-magic>=0.4.27; extra == "plot"
51
51
  </p>
52
52
 
53
53
 
54
- # Welcome to machineconfig
54
+ # 🧠 Welcome to **Machineconfig**
55
+
56
+ **Machineconfig** is a cli-based **Digital Life Manager** — It's called so because no existing category of software fully captures its scope. At the same time, it is a *Package Manager*, *Configuration Manager*, *Automation Tool*, *Dotfiles Manager*, *Data Solution*, and *Code Manager*, among other functionalities covered, all rolled into one seamless experience.
57
+
58
+
59
+ ## 💡 Motivation
60
+
61
+ But why do we need such a tool to combine all those functionalities?? Because you need one tool to manager your stack and dev-environment, put it together and maintain it.
62
+ Consider this concrete scenario: When setting up a new machine, VM, or Docker container, you often face dependency chains like this:
63
+
64
+ ```mermaid
65
+ flowchart TD
66
+ A["Need to setup my [dev] environment"] --> B["need my tool x, e.g.: yadm"]
67
+ B --> C["Requires git"]
68
+ C --> D["Requires package manager, e.g. brew"]
69
+ D --> E["Requires curl"]
70
+ E --> F["Requires network setup / system update"]
71
+ F --> G["Requires system configuration access"]
72
+ G --> H["Finally ready to start setup the tool x."]
73
+ ```
74
+
75
+ Machineconfig builds on shoulder of giants. A suite of best-in-class stack of projects on github are used, the most starred, active and written in Rust tools are used when possible. The goal is to provide a seamless experience that abstracts away the complexity of setting up and maintaining your digital environment. The goal of machineconfig is to replicate your setup, config, code, data and secrets on any machine, any os, in 5 minutes, using minimal user input. Then, from that point, machineconfig will help you maintain, update, backup and sync your digital life across all your devices, automatically.
76
+
77
+
78
+ ## ⚙️ Functional Overview
79
+
80
+ | Category | Comparable Tools | Description |
81
+ |------------------------|----------------------------------------------|-----------------------------------------------------------|
82
+ | **Package Manager** | `winget`, `apt`, `brew`, `nix` | Installs and manages software packages across systems. |
83
+ | **Configuration Manager** | `Ansible`, `Chef`, `Puppet` | Configures and maintains system‐level preferences. |
84
+ | **Automation Tool** | `Airflow`, `Prefect`, `Dagster`, `Celery` | Automates repetitive tasks, pipelines, orchestration. |
85
+ | **Dotfiles Manager** | `chezmoi`, `yadm`, `rcm`, `GNU Stow` | Synchronises dotfiles & personal configs across systems. |
86
+ | **Data Solution** | `rclone`, `rsync` | Handles backups, mirroring and secure file sync. |
87
+ | **Code Manager** | `strong‐box`, `Vault` | Manages and protects code snippets, secrets and creds. |
88
+
89
+ ---
55
90
 
56
- Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
57
- Dotfiles are divided into private and public. Examples of private ones are, `~/.gitconfig`, `~/.ssh`, etc. Whereas public config files are ones like `lfrc`. The private dotfiles are placed @ `~/dotfiles`. The files therein are encrypted before backedup.
58
91
 
59
92
  # Install On Windows:
60
93
 
@@ -68,10 +101,11 @@ iex (iwr bit.ly/cfgwindows).Content # Or, if UV is installed: iex (uvx machinec
68
101
  iex (iwr bit.ly/cfgwq).Content
69
102
  ```
70
103
 
104
+
71
105
  # Install On Linux and MacOS
72
106
 
73
107
  ```bash
74
- # install tool the tool only:
108
+ # install the tool only:
75
109
  curl -LsSf https://astral.sh/uv/install.sh | sh # Skip if UV is already installed
76
110
  uv tool install --upgrade --python 3.14 machineconfig
77
111
  # interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
@@ -0,0 +1,81 @@
1
+
2
+ <p align="center">
3
+
4
+ <a href="https://github.com/thisismygitrepo/machineconfig/commits">
5
+ <img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
6
+ </a>
7
+
8
+ </p>
9
+
10
+
11
+ # 🧠 Welcome to **Machineconfig**
12
+
13
+ **Machineconfig** is a cli-based **Digital Life Manager** — It's called so because no existing category of software fully captures its scope. At the same time, it is a *Package Manager*, *Configuration Manager*, *Automation Tool*, *Dotfiles Manager*, *Data Solution*, and *Code Manager*, among other functionalities covered, all rolled into one seamless experience.
14
+
15
+
16
+ ## 💡 Motivation
17
+
18
+ But why do we need such a tool to combine all those functionalities?? Because you need one tool to manager your stack and dev-environment, put it together and maintain it.
19
+ Consider this concrete scenario: When setting up a new machine, VM, or Docker container, you often face dependency chains like this:
20
+
21
+ ```mermaid
22
+ flowchart TD
23
+ A["Need to setup my [dev] environment"] --> B["need my tool x, e.g.: yadm"]
24
+ B --> C["Requires git"]
25
+ C --> D["Requires package manager, e.g. brew"]
26
+ D --> E["Requires curl"]
27
+ E --> F["Requires network setup / system update"]
28
+ F --> G["Requires system configuration access"]
29
+ G --> H["Finally ready to start setup the tool x."]
30
+ ```
31
+
32
+ Machineconfig builds on shoulder of giants. A suite of best-in-class stack of projects on github are used, the most starred, active and written in Rust tools are used when possible. The goal is to provide a seamless experience that abstracts away the complexity of setting up and maintaining your digital environment. The goal of machineconfig is to replicate your setup, config, code, data and secrets on any machine, any os, in 5 minutes, using minimal user input. Then, from that point, machineconfig will help you maintain, update, backup and sync your digital life across all your devices, automatically.
33
+
34
+
35
+ ## ⚙️ Functional Overview
36
+
37
+ | Category | Comparable Tools | Description |
38
+ |------------------------|----------------------------------------------|-----------------------------------------------------------|
39
+ | **Package Manager** | `winget`, `apt`, `brew`, `nix` | Installs and manages software packages across systems. |
40
+ | **Configuration Manager** | `Ansible`, `Chef`, `Puppet` | Configures and maintains system‐level preferences. |
41
+ | **Automation Tool** | `Airflow`, `Prefect`, `Dagster`, `Celery` | Automates repetitive tasks, pipelines, orchestration. |
42
+ | **Dotfiles Manager** | `chezmoi`, `yadm`, `rcm`, `GNU Stow` | Synchronises dotfiles & personal configs across systems. |
43
+ | **Data Solution** | `rclone`, `rsync` | Handles backups, mirroring and secure file sync. |
44
+ | **Code Manager** | `strong‐box`, `Vault` | Manages and protects code snippets, secrets and creds. |
45
+
46
+ ---
47
+
48
+
49
+ # Install On Windows:
50
+
51
+ ```powershell
52
+ # install tool the tool only:
53
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Skip if UV is already installed
54
+ uv tool install --upgrade --python 3.14 machineconfig
55
+ # interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
56
+ iex (iwr bit.ly/cfgwindows).Content # Or, if UV is installed: iex (uvx machineconfig define)
57
+ # Quick install and configure (optionals are accepted by default):
58
+ iex (iwr bit.ly/cfgwq).Content
59
+ ```
60
+
61
+
62
+ # Install On Linux and MacOS
63
+
64
+ ```bash
65
+ # install the tool only:
66
+ curl -LsSf https://astral.sh/uv/install.sh | sh # Skip if UV is already installed
67
+ uv tool install --upgrade --python 3.14 machineconfig
68
+ # interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
69
+ . <(curl -L bit.ly/cfglinux) # Or, if UV is installed: . <(uvx machineconfig define)
70
+ ```
71
+
72
+
73
+ # Author
74
+ Alex Al-Saffar. [email](mailto:programmer@usa.com)
75
+
76
+ # Contributor
77
+ Ruby Chan. [email](mailto:ruby.chan@sa.gov.au)
78
+
79
+
80
+ [![Alex's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=thisismygitrepo)](https://github.com/ashutosh00710/github-readme-activity-graph)
81
+
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "7.55"
9
+ version = "7.56"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -106,6 +106,7 @@ dev = [
106
106
  "polars>=1.34.0",
107
107
  "pre-commit>=4.3.0",
108
108
  "pudb>=2025.1",
109
+ "py7zr>=1.0.0",
109
110
  "pylint>=3.3.8",
110
111
  "pylsp-mypy>=0.7.0",
111
112
  "pymupdf>=1.26.5",
@@ -1844,12 +1844,12 @@
1844
1844
  "fileNamePattern": {
1845
1845
  "amd64": {
1846
1846
  "linux": "miniserve-{version}-x86_64-unknown-linux-musl",
1847
- "darwin": "miniserve-{version}-x86_64-apple-darwin",
1847
+ "macos": "miniserve-{version}-x86_64-apple-darwin",
1848
1848
  "windows": "miniserve-{version}-x86_64-pc-windows-msvc.exe"
1849
1849
  },
1850
1850
  "arm64": {
1851
1851
  "linux": "miniserve-{version}-aarch64-unknown-linux-musl",
1852
- "darwin": "miniserve-{version}-aarch64-apple-darwin",
1852
+ "macos": "miniserve-{version}-aarch64-apple-darwin",
1853
1853
  "windows": "miniserve-{version}-aarch64-pc-windows-msvc.exe"
1854
1854
  }
1855
1855
  }
@@ -2200,14 +2200,14 @@
2200
2200
  "doc": "🖥️ Text-based desktop environment inside your terminal",
2201
2201
  "fileNamePattern": {
2202
2202
  "amd64": {
2203
- "linux": null,
2204
- "macos": null,
2205
- "windows": null
2203
+ "linux": "vtm_linux_x86_64.tar.7z",
2204
+ "macos": "vtm_macos_any.tar.7z",
2205
+ "windows": "vtm_windows_x86_64.7z"
2206
2206
  },
2207
2207
  "arm64": {
2208
- "linux": null,
2209
- "macos": null,
2210
- "windows": null
2208
+ "linux": "vtm_linux_arm64.tar.7z",
2209
+ "macos": "vtm_macos_any.tar.7z",
2210
+ "windows": "vtm_windows_arm64.7z"
2211
2211
  }
2212
2212
  }
2213
2213
  },
@@ -107,7 +107,7 @@ def croshell(
107
107
  fire_line = f"uv run --python 3.14 --with visidata,pyarrow vd {str(file_obj)}"
108
108
  elif marimo:
109
109
  if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--with marimo --project "{str(Path.home().joinpath("code/machineconfig"))}" """
110
- else: requirements = """--python 3.14 --with "marimo,cowsay,machineconfig[plot]>=7.55" """
110
+ else: requirements = """--python 3.14 --with "marimo,cowsay,machineconfig[plot]>=7.56" """
111
111
  fire_line = f"""
112
112
  cd {str(pyfile.parent)}
113
113
  uv run --python 3.14 --with "marimo" marimo convert {pyfile.name} -o marimo_nb.py
@@ -115,14 +115,14 @@ uv run {requirements} marimo edit --host 0.0.0.0 marimo_nb.py
115
115
  """
116
116
  elif jupyter:
117
117
  if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with jupyterlab """
118
- else: requirements = """--with "cowsay,machineconfig[plot]>=7.55" """
118
+ else: requirements = """--with "cowsay,machineconfig[plot]>=7.56" """
119
119
  fire_line = f"uv run {requirements} jupyter-lab {str(nb_target)}"
120
120
  elif vscode:
121
121
  fire_line = f"""
122
122
  cd {str(pyfile.parent)}
123
123
  uv init --python 3.14
124
124
  uv venv
125
- uv add "cowsay,machineconfig[plot]>=7.55"
125
+ uv add "cowsay,machineconfig[plot]>=7.56"
126
126
  # code serve-web
127
127
  code --new-window {str(pyfile)}
128
128
  """
@@ -130,7 +130,7 @@ code --new-window {str(pyfile)}
130
130
  if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
131
131
  else: profile = ""
132
132
  if Path.home().joinpath("code/machineconfig").exists(): ve_line = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" """
133
- else: ve_line = """--python 3.14 --with "cowsay,machineconfig[plot]>=7.55" """
133
+ else: ve_line = """--python 3.14 --with "cowsay,machineconfig[plot]>=7.56" """
134
134
  # ve_path_maybe, ipython_profile_maybe = get_ve_path_and_ipython_profile(Path.cwd())
135
135
  # --python 3.14
136
136
  fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "machineconfig>=7.55",
5
+ # "machineconfig>=7.56",
6
6
  # "textual",
7
7
  # "pyperclip",
8
8
  # ]
@@ -12,7 +12,9 @@ def main(
12
12
  method: Annotated[Literal["symlink", "s", "copy", "c"], typer.Option(..., "--method", "-m", help="Method to use for linking files")] = "copy",
13
13
  on_conflict: Annotated[ON_CONFLICT_LOOSE, typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
14
14
  sensitivity: Annotated[Literal["private", "v", "public", "b"], typer.Option(..., "--sensitivity", "-s", help="Sensitivity of the config file.")] = "private",
15
- destination: Annotated[str, typer.Option("--destination", "-d", help="destination folder (override the default, use at your own risk)")] = "",) -> None:
15
+ destination: Annotated[str, typer.Option("--destination", "-d", help="destination folder (override the default, use at your own risk)")] = "",
16
+ shared: Annotated[bool, typer.Option("--shared", "-sh", help="Whether the config file is shared across destinations directory.")] = False,
17
+ ) -> None:
16
18
  from rich.console import Console
17
19
  from rich.panel import Panel
18
20
  from machineconfig.utils.links import symlink_map, copy_map
@@ -27,14 +29,22 @@ def main(
27
29
  console = Console()
28
30
  orig_path = Path(file).expanduser().absolute()
29
31
  if destination == "":
30
- new_path = backup_root.joinpath(orig_path.relative_to(Path.home()))
31
- new_path.parent.mkdir(parents=True, exist_ok=True)
32
+ if shared:
33
+ new_path = backup_root.joinpath("shared").joinpath(orig_path.name)
34
+ new_path.parent.mkdir(parents=True, exist_ok=True)
35
+ else:
36
+ new_path = backup_root.joinpath(orig_path.relative_to(Path.home()))
37
+ new_path.parent.mkdir(parents=True, exist_ok=True)
32
38
  else:
33
- dest_path = Path(destination).expanduser().absolute()
34
- dest_path.mkdir(parents=True, exist_ok=True)
35
- new_path = dest_path.joinpath(orig_path.name)
36
-
37
-
39
+ if shared:
40
+ dest_path = Path(destination).expanduser().absolute()
41
+ dest_path.mkdir(parents=True, exist_ok=True)
42
+ new_path = dest_path.joinpath("shared").joinpath(orig_path.name)
43
+ new_path.parent.mkdir(parents=True, exist_ok=True)
44
+ else:
45
+ dest_path = Path(destination).expanduser().absolute()
46
+ dest_path.mkdir(parents=True, exist_ok=True)
47
+ new_path = dest_path.joinpath(orig_path.name)
38
48
  from machineconfig.utils.path_extended import PathExtended
39
49
  match method:
40
50
  case "copy" | "c":
@@ -52,9 +52,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
52
52
  else:
53
53
  import platform
54
54
  if platform.system() == "Windows":
55
- run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.55" """)
55
+ run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.56" """)
56
56
  else:
57
- run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.55" """)
57
+ run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.56" """)
58
58
  from machineconfig.profile.create_shell_profile import create_default_shell_profile
59
59
  if not no_copy_assets:
60
60
  create_default_shell_profile() # involves copying assets too
@@ -79,7 +79,7 @@ def navigate():
79
79
  path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
80
80
  from machineconfig.utils.code import run_shell_script
81
81
  if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
82
- else: executable = """--with "machineconfig>=7.55,textual" """
82
+ else: executable = """--with "machineconfig>=7.56,textual" """
83
83
  run_shell_script(f"""uv run {executable} {path}""")
84
84
 
85
85
 
@@ -54,7 +54,12 @@ def main(
54
54
  else:
55
55
  cloud_resolved = cloud
56
56
  repo_local_root = PathExtended.cwd() if repo is None else PathExtended(repo).expanduser().absolute()
57
- repo_local_obj = git.Repo(repo_local_root, search_parent_directories=True)
57
+ try:
58
+ repo_local_obj = git.Repo(repo_local_root, search_parent_directories=True)
59
+ except git.InvalidGitRepositoryError:
60
+ typer.echo(f"[red]Error:[/] The specified path '{repo_local_root}' is not a valid git repository.")
61
+ typer.Exit(code=1)
62
+ return ""
58
63
  repo_local_root = PathExtended(repo_local_obj.working_dir) # cwd might have been in a sub directory of repo_root, so its better to redefine it.
59
64
  PathExtended(CONFIG_ROOT).joinpath("remote").mkdir(parents=True, exist_ok=True)
60
65
  repo_remote_root = PathExtended(CONFIG_ROOT).joinpath("remote", repo_local_root.rel2home())
@@ -99,7 +104,7 @@ git pull originEnc master
99
104
  uv_project_dir = f"""{str(Path.home().joinpath("code/machineconfig"))}"""
100
105
  uv_with = None
101
106
  else:
102
- uv_with = ["machineconfig>=7.55"]
107
+ uv_with = ["machineconfig>=7.56"]
103
108
  uv_project_dir = None
104
109
 
105
110
  import tempfile
@@ -8,7 +8,7 @@ def analyze_repo_development(repo_path: Annotated[str, typer.Argument(..., help=
8
8
  from pathlib import Path
9
9
  count_lines_path = Path(count_lines.__file__)
10
10
  # --project $HOME/code/ machineconfig --group plot
11
- cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=7.55" {count_lines_path} analyze-over-time {repo_path}"""
11
+ cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=7.56" {count_lines_path} analyze-over-time {repo_path}"""
12
12
  from machineconfig.utils.code import run_shell_script
13
13
  run_shell_script(cmd)
14
14
 
@@ -17,7 +17,7 @@ def path():
17
17
  uv_with = ["textual"]
18
18
  uv_project_dir = None
19
19
  if not Path.home().joinpath("code/machineconfig").exists():
20
- uv_with.append("machineconfig>=7.55")
20
+ uv_with.append("machineconfig>=7.56")
21
21
  else:
22
22
  uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
23
23
  run_shell_script(get_uv_command_executing_python_script(python_script=path.read_text(encoding="utf-8"), uv_with=uv_with, uv_project_dir=uv_project_dir)[0])
@@ -95,7 +95,7 @@ def get_installation_choices() -> list[str]:
95
95
  choices = [
96
96
  Choice(value="install_machineconfig", title="🐍 Install machineconfig cli.", checked=False),
97
97
  Choice(value="sysabc", title="📥 Install System Package Manager (Needed for other apps to be installed).", checked=False),
98
- Choice(value="termabc", title="⚡ Install Terminal CLI apps essentials", checked=False),
98
+ Choice(value="termabc", title="⚡ Install Terminal CLI apps essentials (group `termabc`)", checked=False),
99
99
  Choice(value="install_shell_profile", title="🐚 Configure Shell Profile And Map Other Configs.", checked=False),
100
100
  Choice(value="install_ssh_server", title="🔒 [ADVANCED] Configure SSH Server", checked=False),
101
101
  Choice(value="retrieve_repositories", title="📚 [ADVANCED] Retrieve Repositories", checked=False),
@@ -5,7 +5,7 @@ from machineconfig.utils.source_of_truth import LIBRARY_ROOT
5
5
  from machineconfig.utils.path_extended import PathExtended
6
6
  from rich.console import Console
7
7
  from rich.panel import Panel
8
- from rich import box # Import box
8
+ from rich import box
9
9
  from typing import Optional, Annotated
10
10
  import typer
11
11
 
@@ -13,7 +13,7 @@ import typer
13
13
  console = Console()
14
14
 
15
15
 
16
- def get_add_ssh_key_script(path_to_key: PathExtended):
16
+ def get_add_ssh_key_script(path_to_key: PathExtended) -> str:
17
17
  console.print(Panel("🔑 SSH KEY CONFIGURATION", title="[bold blue]SSH Setup[/bold blue]"))
18
18
  if system() == "Linux" or system() == "Darwin":
19
19
  authorized_keys = PathExtended.home().joinpath(".ssh/authorized_keys")
@@ -66,14 +66,13 @@ sudo service ssh --full-restart
66
66
  return program
67
67
 
68
68
 
69
-
70
69
  """
71
- # Common pitfalls:
72
- # 🚫 Wrong line endings (LF/CRLF) in config files
73
- # 🌐 Network port conflicts (try 2222 -> 2223) between WSL and Windows
74
- # sudo service ssh restart
75
- # sudo service ssh status
76
- # sudo nano /etc/ssh/sshd_config
70
+ Common pitfalls:
71
+ 🚫 Wrong line endings (LF/CRLF) in config files
72
+ 🌐 Network port conflicts (try 2222 -> 2223) between WSL and Windows
73
+ sudo service ssh restart
74
+ sudo service ssh status
75
+ sudo nano /etc/ssh/sshd_config
77
76
  """
78
77
 
79
78
 
@@ -82,8 +81,10 @@ def main(pub_path: Annotated[Optional[str], typer.Argument(..., help="Path to th
82
81
  pub_val: Annotated[bool, typer.Option(..., "--paste", "-p", help="Paste the public key content manually")] = False,
83
82
  from_github: Annotated[Optional[str], typer.Option(..., "--from-github", "-g", help="Fetch public keys from a GitHub username")] = None
84
83
  ) -> None:
84
+
85
85
  if pub_path:
86
86
  key_path = PathExtended(pub_path).expanduser().absolute()
87
+ key_path.parent.mkdir(parents=True, exist_ok=True)
87
88
  if not key_path.exists():
88
89
  console.print(Panel(f"❌ ERROR: Provided key path does not exist\nPath: {key_path}", title="[bold red]Error[/bold red]"))
89
90
  raise FileNotFoundError(f"Provided key path does not exist: {key_path}")
@@ -109,13 +110,13 @@ def main(pub_path: Annotated[Optional[str], typer.Argument(..., help="Path to th
109
110
  console.print(Panel("📋 Please provide a filename and paste the public key content", title="[bold blue]Input Required[/bold blue]", border_style="blue"))
110
111
  key_filename = input("📝 File name (default: my_pasted_key.pub): ") or "my_pasted_key.pub"
111
112
  key_path = PathExtended.home().joinpath(f".ssh/{key_filename}")
113
+ key_path.parent.mkdir(parents=True, exist_ok=True)
112
114
  key_path.write_text(input("🔑 Paste the public key here: "), encoding="utf-8")
113
115
  console.print(Panel(f"💾 Key saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
114
116
  program = get_add_ssh_key_script(key_path)
115
117
  elif from_github:
116
118
  console.print(Panel(f"🌐 Fetching public keys from GitHub user: {from_github}", title="[bold blue]GitHub Fetch[/bold blue]", border_style="blue"))
117
119
  import requests
118
- # $pubkey_url = 'https://github.com/thisismygitrepo.keys' # $pubkey_string = (Invoke-WebRequest $pubkey_url).Content
119
120
  response = requests.get(f"https://api.github.com/users/{from_github}/keys")
120
121
  if response.status_code != 200:
121
122
  console.print(Panel(f"❌ ERROR: Failed to fetch keys from GitHub user {from_github}\nStatus Code: {response.status_code}", title="[bold red]Error[/bold red]", border_style="red"))
@@ -126,6 +127,7 @@ def main(pub_path: Annotated[Optional[str], typer.Argument(..., help="Path to th
126
127
  return
127
128
  console.print(Panel(f"✅ Found {len(keys)} public key(s) for user: {from_github}", title="[bold green]Success[/bold green]", border_style="green"))
128
129
  key_path = PathExtended.home().joinpath(f".ssh/{from_github}_github_keys.pub")
130
+ key_path.parent.mkdir(parents=True, exist_ok=True)
129
131
  key_path.write_text("\n".join([key["key"] for key in keys]), encoding="utf-8")
130
132
  console.print(Panel(f"💾 Keys saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
131
133
  program = get_add_ssh_key_script(key_path)
@@ -137,10 +139,10 @@ def main(pub_path: Annotated[Optional[str], typer.Argument(..., help="Path to th
137
139
  run_shell_script(script=program)
138
140
  import socket
139
141
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
140
- s.connect(('8.8.8.8',80))
142
+ s.connect(('8.8.8.8', 80))
141
143
  local_ip_v4 = s.getsockname()[0]
142
144
  s.close()
143
- print(f"This computer is @ {local_ip_v4}")
145
+ console.print(Panel(f"🌐 This computer is accessible at: {local_ip_v4}", title="[bold green]Network Info[/bold green]", border_style="green"))
144
146
  console.print(Panel("✅ SSH KEY AUTHORIZATION COMPLETED", box=box.DOUBLE_EDGE, title_align="left"))
145
147
 
146
148
 
@@ -7,7 +7,7 @@ $user = ''
7
7
  $sharePath = ''
8
8
  $driveLetter = ''
9
9
 
10
- uv run --python 3.14 --with "machineconfig>=7.55" python -m machineconfig.scripts.python.mount_ssh
10
+ uv run --python 3.14 --with "machineconfig>=7.56" python -m machineconfig.scripts.python.mount_ssh
11
11
 
12
12
  net use T: \\sshfs.kr\$user@$host.local
13
13
  # this worked: net use T: \\sshfs\alex@alex-p51s-5.local
@@ -190,6 +190,6 @@ end
190
190
 
191
191
 
192
192
  -- and finally, return the configuration to wezterm
193
- config.enable_osc133 = false -- to silence: P>|WezTerm 20240203-110809-5046fc22\
193
+ -- config.enable_osc133 = false -- to silence: P>|WezTerm 20240203-110809-5046fc22\
194
194
 
195
195
  return config
@@ -2,16 +2,16 @@
2
2
  . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
3
3
  . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/linux/wrap_mcfg")
4
4
 
5
- alias devops='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" devops'
6
- alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" cloud'
7
- alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" agents'
8
- alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" sessions'
9
- alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" ftpx'
10
- alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" fire'
11
- alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" croshell'
12
- alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" utils'
13
- alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" terminal'
14
- alias msearch='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.55" msearch'
5
+ alias devops='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" devops'
6
+ alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" cloud'
7
+ alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" agents'
8
+ alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" sessions'
9
+ alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" ftpx'
10
+ alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" fire'
11
+ alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" croshell'
12
+ alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" utils'
13
+ alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" terminal'
14
+ alias msearch='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.56" msearch'
15
15
 
16
16
  alias d='wrap_in_shell_script devops'
17
17
  alias c='wrap_in_shell_script cloud'
@@ -3,16 +3,16 @@
3
3
  iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
4
4
  iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/windows/wrap_mcfg.ps1").Content
5
5
 
6
- function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" devops $args }
7
- function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" cloud $args }
8
- function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" agents $args }
9
- function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" sessions $args }
10
- function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" ftpx $args }
11
- function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" fire $args }
12
- function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" croshell $args }
13
- function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" utils $args }
14
- function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" terminal $args }
15
- function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.55" msearch $args }
6
+ function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" devops $args }
7
+ function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" cloud $args }
8
+ function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" agents $args }
9
+ function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" sessions $args }
10
+ function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" ftpx $args }
11
+ function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" fire $args }
12
+ function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" croshell $args }
13
+ function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" utils $args }
14
+ function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" terminal $args }
15
+ function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.56" msearch $args }
16
16
 
17
17
  function d { wrap_in_shell_script devops @args }
18
18
  function c { wrap_in_shell_script cloud @args }
@@ -200,6 +200,10 @@ class Installer:
200
200
  assert download_link is not None, "download_link must be set"
201
201
  assert version_to_be_installed is not None, "version_to_be_installed must be set"
202
202
  downloaded = PathExtended(download_link).download(folder=INSTALL_TMP_DIR).decompress()
203
+ if downloaded.is_dir() and len(downloaded.search("*", r=True)) == 1:
204
+ only_file_in = next(downloaded.glob("*"))
205
+ if only_file_in.is_file() and only_file_in.suffix in [".7z", ".zip", ".tar.gz", ".tar"]: # further decompress
206
+ downloaded = only_file_in.decompress()
203
207
  return downloaded, version_to_be_installed
204
208
 
205
209
  # --------------------------- Arch / template helpers ---------------------------
@@ -480,9 +480,6 @@ class PathExtended(type(Path()), Path): # type: ignore # pylint: disable=E0241
480
480
  **kwargs: Any,
481
481
  ) -> "PathExtended":
482
482
  path_resolved, slf = self._resolve_path(folder, name, path, self.name).expanduser().resolve(), self.expanduser().resolve()
483
- # if use_7z: # benefits over regular zip and encrypt: can handle very large files with low memory footprint
484
- # path_resolved = path_resolved + '.7z' if not path_resolved.suffix == '.7z' else path_resolved
485
- # with install_n_import("py7zr").SevenZipFile(file=path_resolved, mode=mode, password=pwd) as archive: archive.writeall(path=str(slf), arcname=None)
486
483
  arcname_obj = PathExtended(arcname or slf.name)
487
484
  if arcname_obj.name != slf.name:
488
485
  arcname_obj /= slf.name # arcname has to start from somewhere and end with filename
@@ -555,15 +552,6 @@ class PathExtended(type(Path()), Path): # type: ignore # pylint: disable=E0241
555
552
  folder = folder if not content else folder.parent
556
553
  if slf.suffix == ".7z":
557
554
  raise NotImplementedError("I have not implemented this yet")
558
- # if overwrite: P(folder).delete(sure=True)
559
- # result = folder
560
- # import py7zr
561
- # with py7zr.SevenZipFile(file=slf, mode='r', password=pwd) as archive:
562
- # if pattern is not None:
563
- # import re
564
- # pat = re.compile(pattern)
565
- # archive.extract(path=folder, targets=[f for f in archive.getnames() if pat.match(f)])
566
- # else: archive.extractall(path=folder)
567
555
  else:
568
556
  if overwrite:
569
557
  if not content:
@@ -698,19 +686,52 @@ class PathExtended(type(Path()), Path): # type: ignore # pylint: disable=E0241
698
686
  return ret
699
687
 
700
688
  def decompress(self, folder: OPLike = None, name: Optional[str] = None, path: OPLike = None, inplace: bool = False, orig: bool = False, verbose: bool = True) -> "PathExtended":
701
- if ".tar.gz" in str(self) or ".tgz" in str(self):
689
+ if str(self).endswith(".tar.gz") or str(self).endswith(".tgz"):
702
690
  # res = self.ungz_untar(folder=folder, path=path, name=name, inplace=inplace, verbose=verbose, orig=orig)
703
691
  return self.ungz(name=f"tmp_{randstr()}.tar", inplace=inplace).untar(folder=folder, name=name, path=path, inplace=True, orig=orig, verbose=verbose) # this works for .tgz suffix as well as .tar.gz
704
- elif ".gz" in str(self):
692
+ elif str(self).endswith(".tar"):
693
+ res = self.untar(folder=folder, name=name, path=path, inplace=inplace, orig=orig, verbose=verbose)
694
+ elif str(self).endswith(".gz"):
705
695
  res = self.ungz(folder=folder, path=path, name=name, inplace=inplace, verbose=verbose, orig=orig)
706
- elif ".tar.bz" in str(self) or "tbz" in str(self):
696
+ elif str(self).endswith(".tar.bz") or str(self).endswith(".tbz"):
707
697
  res = self.unbz(name=f"tmp_{randstr()}.tar", inplace=inplace)
708
698
  return res.untar(folder=folder, name=name, path=path, inplace=True, orig=orig, verbose=verbose)
709
- elif ".tar.xz" in str(self):
699
+ elif str(self).endswith(".tar.xz"):
710
700
  # res = self.unxz_untar(folder=folder, path=path, name=name, inplace=inplace, verbose=verbose, orig=orig)
711
701
  res = self.unxz(inplace=inplace).untar(folder=folder, name=name, path=path, inplace=True, orig=orig, verbose=verbose)
712
- elif ".zip" in str(self):
702
+ elif str(self).endswith(".zip"):
713
703
  res = self.unzip(folder=folder, path=path, name=name, inplace=inplace, verbose=verbose, orig=orig)
704
+ elif str(self).endswith(".7z"):
705
+ def unzip_7z(archive_path: str, dest_dir: Optional[str] = None) -> Path:
706
+ """
707
+ Uncompresses a .7z archive to a directory and returns the Path to the extraction directory.
708
+
709
+ :param archive_path: path to the .7z archive file
710
+ :param dest_dir: optional path to directory to extract into; if None a temporary dir will be created
711
+ :return: pathlib.Path pointing to the destination directory where contents were extracted
712
+ :raises: FileNotFoundError if archive does not exist; py7zr.Bad7zFile or other error if extraction fails
713
+ """
714
+ import py7zr
715
+ import tempfile
716
+ from pathlib import Path
717
+ archive_path_obj = Path(archive_path)
718
+ if not archive_path_obj.is_file():
719
+ raise FileNotFoundError(f"Archive file not found: {archive_path_obj!r}")
720
+ if dest_dir is None:
721
+ # create a temporary directory
722
+ dest = Path(tempfile.mkdtemp(prefix=f"unzip7z_{archive_path_obj.stem}_"))
723
+ else:
724
+ dest = Path(dest_dir)
725
+ dest.mkdir(parents=True, exist_ok=True)
726
+ # Perform extraction
727
+ with py7zr.SevenZipFile(str(archive_path_obj), mode='r') as archive:
728
+ archive.extractall(path=str(dest))
729
+ # Return the extraction directory path
730
+ return dest
731
+ from machineconfig.utils.code import run_lambda_function
732
+ destination_dir = str(self.expanduser().resolve()).replace(".7z", "")
733
+ run_lambda_function(lambda: unzip_7z(archive_path=str(self), dest_dir=destination_dir), uv_project_dir=None, uv_with=["py7zr"])
734
+ res = PathExtended(destination_dir)
714
735
  else:
715
736
  res = self
716
737
  return res