machineconfig 6.36__tar.gz → 6.38__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 (440) hide show
  1. {machineconfig-6.36/src/machineconfig.egg-info → machineconfig-6.38}/PKG-INFO +1 -1
  2. {machineconfig-6.36 → machineconfig-6.38}/pyproject.toml +2 -2
  3. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud.py +5 -0
  4. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_sync.py +4 -4
  5. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell.py +18 -6
  6. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops.py +4 -0
  7. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_nw.py +3 -3
  8. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_repos.py +5 -5
  9. machineconfig-6.38/src/machineconfig/scripts/python/devops_helpers/cli_utils.py +79 -0
  10. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/action.py +6 -6
  11. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/entrypoint.py +1 -2
  12. machineconfig-6.38/src/machineconfig/utils/files/art/fat_croco.txt +10 -0
  13. machineconfig-6.38/src/machineconfig/utils/files/art/halfwit_croco.txt +9 -0
  14. machineconfig-6.38/src/machineconfig/utils/files/art/happy_croco.txt +22 -0
  15. machineconfig-6.38/src/machineconfig/utils/files/art/water_croco.txt +11 -0
  16. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/headers.py +4 -10
  17. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/installer_abc.py +3 -2
  18. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/scheduler.py +61 -25
  19. {machineconfig-6.36 → machineconfig-6.38/src/machineconfig.egg-info}/PKG-INFO +1 -1
  20. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/SOURCES.txt +5 -0
  21. {machineconfig-6.36 → machineconfig-6.38}/MANIFEST.in +0 -0
  22. {machineconfig-6.36 → machineconfig-6.38}/README.md +0 -0
  23. {machineconfig-6.36 → machineconfig-6.38}/setup.cfg +0 -0
  24. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/__init__.py +0 -0
  25. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/__init__.py +0 -0
  26. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  27. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  28. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/distribute.py +0 -0
  29. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  30. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/job_params.py +0 -0
  31. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  32. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  33. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  34. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  35. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  36. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  37. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  38. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  39. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
  40. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
  41. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  42. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
  43. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  44. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  45. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  46. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  47. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  48. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  49. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  50. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  51. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  52. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  53. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  54. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  55. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  56. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  57. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  58. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  59. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  60. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  61. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  62. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  63. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
  64. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
  65. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
  66. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
  67. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/templates/__init__.py +0 -0
  68. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  69. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/__init__.py +0 -0
  70. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/__init__.py +0 -0
  71. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/check_installations.py +0 -0
  72. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  73. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  74. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  75. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  76. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  77. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  78. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  79. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  80. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
  81. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  82. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  83. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  84. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  85. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  86. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  87. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  88. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  89. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  90. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  91. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  92. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  93. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  94. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  95. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  96. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  97. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  98. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  99. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  100. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  101. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  102. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  103. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  104. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  105. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  106. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  107. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  108. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/python/__init__.py +0 -0
  109. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  110. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  111. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  112. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  113. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  114. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  115. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  116. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/logger.py +0 -0
  117. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/__init__.py +0 -0
  118. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/backup.toml +0 -0
  119. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
  120. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_helper.py +0 -0
  121. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_links.py +0 -0
  122. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_links_export.py +0 -0
  123. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_shell_profile.py +0 -0
  124. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/mapper.toml +0 -0
  125. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  126. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  127. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  128. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  129. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  130. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
  131. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/__init__.py +0 -0
  132. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzf2g +0 -0
  133. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzfag +0 -0
  134. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzffg +0 -0
  135. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzfg +0 -0
  136. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzfrga +0 -0
  137. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
  138. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
  139. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/share_smb +0 -0
  140. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/start_docker +0 -0
  141. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
  142. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/skrg +0 -0
  143. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  144. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/z_ls +0 -0
  145. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/__init__.py +0 -0
  146. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/agents.py +0 -0
  147. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  148. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
  149. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
  150. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  151. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  152. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  153. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  154. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  155. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  156. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  157. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  158. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  159. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  160. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  161. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  162. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  163. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  164. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  165. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  166. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  167. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  168. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  169. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  170. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  171. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  172. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  173. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  174. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  175. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  176. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/vscode_tasks.py +0 -0
  177. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/__init__.py +0 -0
  178. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_copy.py +0 -0
  179. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_helpers.py +0 -0
  180. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_mount.py +0 -0
  181. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/helpers2.py +0 -0
  182. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/helpers5.py +0 -0
  183. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/__init__.py +0 -0
  184. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/pomodoro.py +0 -0
  185. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/scheduler.py +0 -0
  186. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/start_slidev.py +0 -0
  187. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/viewer.py +0 -0
  188. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/viewer_template.py +0 -0
  189. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/__init__.py +0 -0
  190. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_config.py +0 -0
  191. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py +0 -0
  192. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_data.py +0 -0
  193. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_self.py +0 -0
  194. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_share_server.py +0 -0
  195. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_terminal.py +0 -0
  196. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py +0 -0
  197. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/devops_status.py +0 -0
  198. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/devops_update_repos.py +0 -0
  199. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/themes/__init__.py +0 -0
  200. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/themes/choose_pwsh_theme.ps1 +0 -0
  201. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/themes/choose_wezterm_theme.py +0 -0
  202. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
  203. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/entry.py +0 -0
  204. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
  205. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
  206. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +0 -0
  207. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  208. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ftpx.py +0 -0
  209. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/__init__.py +0 -0
  210. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/command_builder.py +0 -0
  211. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/command_detail.py +0 -0
  212. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/command_tree.py +0 -0
  213. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/data_models.py +0 -0
  214. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/main_app.py +0 -0
  215. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/search_bar.py +0 -0
  216. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
  217. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py +0 -0
  218. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json +0 -0
  219. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -0
  220. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_cursor_agents.py +0 -0
  221. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -0
  222. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -0
  223. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +0 -0
  224. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py +0 -0
  225. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -0
  226. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py +0 -0
  227. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/helpers4.py +0 -0
  228. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -0
  229. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/template.ps1 +0 -0
  230. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/template.sh +0 -0
  231. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  232. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
  233. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  234. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
  235. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  236. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/__init__.py +0 -0
  237. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +0 -0
  238. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
  239. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
  240. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/interactive.py +0 -0
  241. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
  242. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/add_ssh_key.py +0 -0
  243. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
  244. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -0
  245. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
  246. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nfs +0 -0
  247. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
  248. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
  249. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
  250. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
  251. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
  252. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
  253. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -0
  254. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -0
  255. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
  256. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
  257. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/clone.py +0 -0
  258. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/count_lines.py +0 -0
  259. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +0 -0
  260. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/record.py +0 -0
  261. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/sync.py +0 -0
  262. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/update.py +0 -0
  263. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/sessions.py +0 -0
  264. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/sessions_helpers/__init__.py +0 -0
  265. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/sessions_helpers/sessions_multiprocess.py +0 -0
  266. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  267. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  268. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  269. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
  270. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
  271. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
  272. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -0
  273. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
  274. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
  275. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
  276. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/__init__.py +0 -0
  277. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/broot/br.sh +0 -0
  278. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  279. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/broot/conf.toml +0 -0
  280. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/glow/glow.yml +0 -0
  281. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  282. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/helix/config.toml +0 -0
  283. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/helix/languages.toml +0 -0
  284. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keras/keras.json +0 -0
  285. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  286. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  287. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  288. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  289. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  290. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  291. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  292. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  293. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  294. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  295. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/colors +0 -0
  296. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  297. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  298. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  299. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  300. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  301. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  302. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/icons +0 -0
  303. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  304. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  305. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  306. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  307. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  308. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  309. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  310. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  311. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  312. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  313. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  314. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/colors +0 -0
  315. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  316. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/icons +0 -0
  317. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  318. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  319. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  320. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  321. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  322. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  323. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  324. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.flake8 +0 -0
  325. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  326. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.pylintrc +0 -0
  327. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  328. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  329. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  330. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  331. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  332. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  333. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/mprocs/windows/other +0 -0
  334. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  335. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  336. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/procs/.procs.toml +0 -0
  337. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  338. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/rofi/config.rasi +0 -0
  339. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  340. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  341. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  342. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  343. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  344. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  345. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  346. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  347. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  348. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  349. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  350. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  351. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  352. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  353. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  354. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  355. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  356. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/streamlit/config.toml +0 -0
  357. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  358. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  359. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  360. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tere/terecd.sh +0 -0
  361. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  362. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  363. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  364. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  365. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/yazi/theme.toml +0 -0
  366. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  367. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zed/settings.json +0 -0
  368. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  369. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  370. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/config.kdl +0 -0
  371. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  372. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  373. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  374. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  375. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  376. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  377. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/__init__.py +0 -0
  378. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/apps.sh +0 -0
  379. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  380. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  381. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  382. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  383. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  384. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  385. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/uv.sh +0 -0
  386. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  387. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  388. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/__init__.py +0 -0
  389. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/apps.ps1 +0 -0
  390. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  391. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  392. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  393. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
  394. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
  395. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  396. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/uv.ps1 +0 -0
  397. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  398. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  399. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  400. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/__init__.py +0 -0
  401. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/accessories.py +0 -0
  402. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ai/__init__.py +0 -0
  403. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
  404. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  405. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  406. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/code.py +0 -0
  407. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/ascii_art.py +0 -0
  408. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/dbms.py +0 -0
  409. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
  410. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
  411. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/read.py +0 -0
  412. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer.py +0 -0
  413. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  414. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  415. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  416. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  417. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/io.py +0 -0
  418. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/links.py +0 -0
  419. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/meta.py +0 -0
  420. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/notifications.py +0 -0
  421. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/options.py +0 -0
  422. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/path_extended.py +0 -0
  423. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/path_helper.py +0 -0
  424. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/procs.py +0 -0
  425. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/scheduling.py +0 -0
  426. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  427. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  428. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  429. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  430. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/source_of_truth.py +0 -0
  431. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ssh.py +0 -0
  432. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
  433. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/terminal.py +0 -0
  434. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/tst.py +0 -0
  435. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/upgrade_packages.py +0 -0
  436. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ve.py +0 -0
  437. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  438. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/entry_points.txt +0 -0
  439. {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/requires.txt +0 -0
  440. {machineconfig-6.36 → machineconfig-6.38}/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: 6.36
3
+ Version: 6.38
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "6.36"
9
+ version = "6.38"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -79,7 +79,7 @@ license-files = []
79
79
  where = ["src"]
80
80
 
81
81
  [tool.setuptools.package-data]
82
- machineconfig = ["**/*.toml", "**/*.md", "**/*.sh", "**/*.ps1"]
82
+ machineconfig = ["**/*.toml", "**/*.md", "**/*.sh", "**/*.ps1", "**/*.txt"]
83
83
 
84
84
  [dependency-groups]
85
85
  dev = [
@@ -22,3 +22,8 @@ def get_app():
22
22
  def main():
23
23
  app = get_app()
24
24
  app()
25
+
26
+
27
+ if __name__ == "__main__":
28
+ pass
29
+ # a = get_app()(asdf)
@@ -73,8 +73,8 @@ def main(
73
73
  cmd_line = f"{rclone_cmd[:65]}..."
74
74
  console.print(Panel(f"{title}\n{cmd_line}", title="[bold blue]Command[/bold blue]", expand=False))
75
75
 
76
- # PROGRAM_PATH.write_text(txt, encoding="utf-8")
77
- import subprocess
78
-
79
- subprocess.run(txt, shell=True, check=True)
76
+ # import subprocess
77
+ # subprocess.run(txt, shell=True, check=True)
78
+ from machineconfig.utils.code import run_shell_script
79
+ run_shell_script(txt)
80
80
 
@@ -10,9 +10,10 @@ from machineconfig.utils.path_extended import PathExtended
10
10
  from machineconfig.utils.accessories import randstr
11
11
 
12
12
  from machineconfig.utils.options import choose_from_options
13
- # from machineconfig.utils.ve import get_ve_activate_line
14
13
  from rich.console import Console
15
14
  from rich.panel import Panel
15
+ # from machineconfig.utils.ve import get_ve_path_and_ipython_profile
16
+ # from pathlib import Path
16
17
  # from rich.text import Text
17
18
 
18
19
  console = Console()
@@ -63,10 +64,11 @@ except Exception as e:
63
64
 
64
65
 
65
66
  def croshell(
66
- path: Annotated[Optional[str], typer.Argument(help="read a file.")] = "",
67
+ path: Annotated[Optional[str], typer.Argument(help="path of file to read.")] = "",
67
68
  python: Annotated[bool, typer.Option("--python", "-p", help="flag to use python over IPython.")] = False,
68
69
  profile: Annotated[Optional[str], typer.Option("--profile", "-P", help="ipython profile to use, defaults to default profile.")] = None,
69
70
  jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
71
+ vscode: Annotated[bool, typer.Option("--vscode", "-c", help="open the script in vscode")] = False,
70
72
  streamlit_viewer: Annotated[bool, typer.Option("--stViewer", "-s", help="view in streamlit app")] = False,
71
73
  visidata: Annotated[bool, typer.Option("--visidata", "-V", help="open data file in visidata")] = False,
72
74
  local: Annotated[bool, typer.Option("--local", "-l", help="run in local mode, not in virtual env.")]= False,
@@ -104,7 +106,6 @@ def croshell(
104
106
  program = get_read_data_pycode(str(file_obj))
105
107
  text = f"📄 Reading data from: {file_obj.name}"
106
108
  console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
107
-
108
109
  else: # if nothing is specified, then run in interactive mode.
109
110
  text = "⌨️ Entering interactive mode"
110
111
  console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
@@ -124,7 +125,7 @@ from pathlib import Path
124
125
 
125
126
  """
126
127
 
127
- pyfile = PathExtended.tmp().joinpath(f"tmp_scripts/python/croshell/{randstr()}.py")
128
+ pyfile = PathExtended.tmp().joinpath(f"tmp_scripts/python/croshell/{randstr()}/script.py")
128
129
  pyfile.parent.mkdir(parents=True, exist_ok=True)
129
130
 
130
131
  title = "Reading Data"
@@ -137,7 +138,16 @@ from pathlib import Path
137
138
  if visidata:
138
139
  fire_line = f"uv run --with visidata,pyarrow vd {str(file_obj)}"
139
140
  elif jupyter:
140
- fire_line = f"code --new-window {str(pyfile)}"
141
+ fire_line = f"uv run --with 'machineconfig[plot]>=6.36' jupyter-lab {str(pyfile)}"
142
+ elif vscode:
143
+ fire_line = f"""
144
+ cd {str(pyfile.parent)}
145
+ uv init --python 3.14
146
+ uv venv
147
+ uv add "machineconfig[plot]>=6.36"
148
+ # code serve-web
149
+ code --new-window {str(pyfile)}
150
+ """
141
151
  else:
142
152
  if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
143
153
  else: profile = ""
@@ -150,7 +160,9 @@ from pathlib import Path
150
160
  console.print(Panel("❌ Could not determine the local machineconfig repo root. Please ensure the `REPO_ROOT` in `source_of_truth.py` is correctly set to the local path of the machineconfig repo, or do not use the `--local` flag.", title="Error", border_style="red"))
151
161
  return
152
162
  else: ve_line = """--with "machineconfig[plot]>=6.36" """
153
- fire_line = f"uv run --python 3.14 {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
163
+ # ve_path_maybe, ipython_profile_maybe = get_ve_path_and_ipython_profile(Path.cwd())
164
+ # --python 3.14
165
+ fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
154
166
 
155
167
  from machineconfig.utils.code import run_shell_script
156
168
  run_shell_script(fire_line, clean_env=False)
@@ -8,6 +8,7 @@ import machineconfig.scripts.python.devops_helpers.cli_config as cli_config
8
8
  import machineconfig.scripts.python.devops_helpers.cli_self as cli_self
9
9
  import machineconfig.scripts.python.devops_helpers.cli_data as cli_data
10
10
  import machineconfig.scripts.python.devops_helpers.cli_nw as cli_network
11
+ from machineconfig.scripts.python.devops_helpers.cli_utils import get_app as get_app_utils
11
12
 
12
13
 
13
14
  def install(which: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program names to install, or group name if --group flag is set.")] = None,
@@ -39,6 +40,9 @@ def get_app():
39
40
  app_nw = cli_network.get_app()
40
41
  app.add_typer(app_nw, name="network")
41
42
  app.add_typer(app_nw, name="n", hidden=True)
43
+ app_utils = get_app_utils()
44
+ app.add_typer(app_utils, name="utils")
45
+ app.add_typer(app_utils, name="u", hidden=True)
42
46
  return app
43
47
 
44
48
  def main():
@@ -64,9 +64,9 @@ def get_app():
64
64
  nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
65
65
  nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
66
66
  nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True, no_args_is_help=True)(add_ssh_key)
67
- nw_apps.command(name="add-ssh-identity", help="🗝️ [a] Add SSH identity (private key) to this machine")(add_ssh_identity)
68
- nw_apps.command(name="a", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
69
- nw_apps.command(name="show-address", help="[A] Show this computer addresses on network")(show_address)
67
+ nw_apps.command(name="add-ssh-identity", help="🗝️ [A] Add SSH identity (private key) to this machine")(add_ssh_identity)
68
+ nw_apps.command(name="A", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
69
+ nw_apps.command(name="show-address", help="📌 [a] Show this computer addresses on network")(show_address)
70
70
  nw_apps.command(name="a", help="Show this computer addresses on network", hidden=True)(show_address)
71
71
  nw_apps.command(name="debug-ssh", help="🐛 [d] Debug SSH connection")(debug_ssh)
72
72
  nw_apps.command(name="d", help="Debug SSH connection", hidden=True)(debug_ssh)
@@ -20,27 +20,27 @@ CloudOption = Annotated[Optional[str], typer.Option("--cloud", "-c", help="☁
20
20
  def push(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
21
21
  """🚀 Push changes across repositories."""
22
22
  from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
23
- git_operations(directory, pull=False, commit=False, push=True, recursive=recursive, no_sync=no_sync)
23
+ git_operations(directory, pull=False, commit=False, push=True, recursive=recursive, auto_uv_sync=not no_sync)
24
24
 
25
25
 
26
26
  def pull(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
27
27
  """⬇️ Pull changes across repositories."""
28
28
  from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
29
29
 
30
- git_operations(directory, pull=True, commit=False, push=False, recursive=recursive, no_sync=no_sync)
30
+ git_operations(directory, pull=True, commit=False, push=False, recursive=recursive, auto_uv_sync=not no_sync)
31
31
 
32
32
 
33
33
  def commit(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
34
34
  """💾 Commit changes across repositories."""
35
35
  from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
36
-
37
- git_operations(directory, pull=False, commit=True, push=False, recursive=recursive, no_sync=no_sync)
36
+ git_operations(directory, pull=False, commit=True, push=False, recursive=recursive, auto_uv_sync=not no_sync)
38
37
 
39
38
 
40
39
  def sync(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
41
40
  """🔄 Pull, commit, and push changes across repositories."""
42
41
  from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
43
- git_operations(directory, pull=True, commit=True, push=True, recursive=recursive, no_sync=no_sync)
42
+ print(f"no_sync is {no_sync}")
43
+ git_operations(directory, pull=True, commit=True, push=True, recursive=recursive, auto_uv_sync=not no_sync)
44
44
 
45
45
 
46
46
  def capture(directory: DirectoryArgument = None, cloud: CloudOption = None) -> None:
@@ -0,0 +1,79 @@
1
+
2
+
3
+ import typer
4
+ from typing import Annotated, Optional
5
+ from pathlib import Path
6
+ import subprocess
7
+ import requests
8
+
9
+ def download(url: Annotated[Optional[str], typer.Argument(..., help="The URL to download the file from." )] = None,
10
+ decompress: Annotated[bool, typer.Option("--decompress", "-d", help="Decompress the file if it's an archive.")] = False,
11
+ output: Annotated[Optional[str], typer.Option("--output", "-o", help="The output file path.")] = None) -> None:
12
+ if url is None:
13
+ typer.echo("❌ Error: URL is required.", err=True)
14
+ raise typer.Exit(code=1)
15
+
16
+ typer.echo(f"📥 Downloading from: {url}")
17
+
18
+ download_path = Path(output) if output else Path(url.split("/")[-1])
19
+
20
+ try:
21
+ response = requests.get(url, allow_redirects=True, stream=True, timeout=60)
22
+ response.raise_for_status()
23
+
24
+ total_size = int(response.headers.get('content-length', 0))
25
+
26
+ with open(download_path, 'wb') as f:
27
+ if total_size == 0:
28
+ f.write(response.content)
29
+ else:
30
+ downloaded = 0
31
+ chunk_size = 8192
32
+ for chunk in response.iter_content(chunk_size=chunk_size):
33
+ if chunk:
34
+ f.write(chunk)
35
+ downloaded += len(chunk)
36
+ progress = (downloaded / total_size) * 100
37
+ typer.echo(f"\r⏬ Progress: {progress:.1f}% ({downloaded}/{total_size} bytes)", nl=False)
38
+ typer.echo()
39
+
40
+ typer.echo(f"✅ Downloaded to: {download_path}")
41
+ except requests.exceptions.RequestException as e:
42
+ typer.echo(f"❌ Download failed: {e}", err=True)
43
+ raise typer.Exit(code=1)
44
+ except OSError as e:
45
+ typer.echo(f"❌ File write error: {e}", err=True)
46
+ raise typer.Exit(code=1)
47
+
48
+ if decompress:
49
+ typer.echo(f"📦 Decompressing: {download_path}")
50
+
51
+ output_dir = download_path.parent if output else Path.cwd()
52
+
53
+ try:
54
+ _result = subprocess.run(
55
+ ["ouch", "decompress", str(download_path), "--dir", str(output_dir)],
56
+ check=True,
57
+ capture_output=True,
58
+ text=True
59
+ )
60
+ typer.echo(f"✅ Decompressed to: {output_dir}")
61
+
62
+ if download_path.exists():
63
+ download_path.unlink()
64
+ typer.echo(f"🗑️ Removed archive: {download_path}")
65
+
66
+ except subprocess.CalledProcessError as e:
67
+ typer.echo(f"❌ Decompression failed: {e.stderr}", err=True)
68
+ raise typer.Exit(code=1)
69
+ except FileNotFoundError:
70
+ typer.echo("❌ Error: ouch command not found. Please install ouch.", err=True)
71
+ typer.echo("💡 Install with: cargo install ouch", err=True)
72
+ raise typer.Exit(code=1)
73
+
74
+
75
+ def get_app() -> typer.Typer:
76
+ app = typer.Typer(help="🛠️ [u] utilities operations", no_args_is_help=True, add_completion=True)
77
+ app.command(name="download", no_args_is_help=True, help="[d] Download a file from a URL and optionally decompress it.")(download)
78
+ app.command(name="d", no_args_is_help=True, hidden=True)(download)
79
+ return app
@@ -57,7 +57,7 @@ class GitOperationSummary:
57
57
  self.repos_without_remotes: list[PathExtended] = []
58
58
 
59
59
 
60
- def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None, r: bool = False, auto_sync: bool = True) -> GitOperationResult:
60
+ def git_action(path: PathExtended, action: GitAction, mess: Optional[str], r: bool, auto_uv_sync: bool) -> GitOperationResult:
61
61
  """Perform git actions using Python instead of shell scripts. Returns detailed operation result."""
62
62
  from git.exc import InvalidGitRepositoryError
63
63
  from git.repo import Repo
@@ -67,7 +67,7 @@ def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None
67
67
  except InvalidGitRepositoryError:
68
68
  pprint(f"⚠️ Skipping {path} because it is not a git repository.")
69
69
  if r:
70
- results = [git_action(path=sub_path, action=action, mess=mess, r=r, auto_sync=auto_sync) for sub_path in path.search()]
70
+ results = [git_action(path=sub_path, action=action, mess=mess, r=r, auto_uv_sync=auto_uv_sync) for sub_path in path.search()]
71
71
  # For recursive calls, we need to aggregate results somehow
72
72
  # For now, return success if all recursive operations succeeded
73
73
  all_successful = all(result.success for result in results)
@@ -154,7 +154,7 @@ def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None
154
154
  elif action == GitAction.pull:
155
155
  # Use the enhanced update function with uv sync support
156
156
  try:
157
- update_repository(repo, auto_uv_sync=auto_sync, allow_password_prompt=False)
157
+ update_repository(repo, auto_uv_sync=auto_uv_sync, allow_password_prompt=False)
158
158
  print("✅ Pull completed")
159
159
  return GitOperationResult(
160
160
  repo_path=path,
@@ -341,7 +341,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
341
341
 
342
342
  # Now perform the actual operations
343
343
  if pull:
344
- result = git_action(path=a_path, action=GitAction.pull, r=recursive, auto_sync=auto_uv_sync)
344
+ result = git_action(path=a_path, action=GitAction.pull, mess=None, r=recursive, auto_uv_sync=auto_uv_sync)
345
345
  summary.pulls_attempted += 1
346
346
  if result.success:
347
347
  summary.pulls_successful += 1
@@ -350,7 +350,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
350
350
  summary.failed_operations.append(result)
351
351
 
352
352
  if commit:
353
- result = git_action(a_path, action=GitAction.commit, r=recursive, auto_sync=auto_uv_sync)
353
+ result = git_action(a_path, action=GitAction.commit, mess=None, r=recursive, auto_uv_sync=auto_uv_sync)
354
354
  summary.commits_attempted += 1
355
355
  if result.success:
356
356
  if result.had_changes:
@@ -362,7 +362,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
362
362
  summary.failed_operations.append(result)
363
363
 
364
364
  if push:
365
- result = git_action(a_path, action=GitAction.push, r=recursive, auto_sync=auto_uv_sync)
365
+ result = git_action(a_path, action=GitAction.push, mess=None, r=recursive, auto_uv_sync=auto_uv_sync)
366
366
  summary.pushes_attempted += 1
367
367
  if result.success:
368
368
  summary.pushes_successful += 1
@@ -20,11 +20,10 @@ def git_operations(
20
20
  commit: bool,
21
21
  push: bool,
22
22
  recursive: bool,
23
- no_sync: bool,
23
+ auto_uv_sync: bool,
24
24
  ) -> None:
25
25
 
26
26
  repos_root = resolve_directory(directory)
27
- auto_uv_sync = not no_sync
28
27
  from machineconfig.scripts.python.repos_helpers.action import perform_git_operations
29
28
  from machineconfig.utils.path_extended import PathExtended
30
29
  perform_git_operations(
@@ -0,0 +1,10 @@
1
+ _ ___ /^^\ /^\ /^^\_
2
+ _ _@)@) \ ,,/ '` ~ `'~~ ', `\.
3
+ _/o\_ _ _ _/~`.`...'~\ ./~~..,'`','',.,' ' ~:
4
+ / `,'.~,~.~ . , . , ~|, ,/ .,' , ,. .. ,,. `, ~\_
5
+ ( ' _' _ '_` _ ' . , `\_/ .' ..' ' ` ` `.. `, \_
6
+ ~V~ V~ V~ V~ ~\ ` ' . ' , ' .,.,''`.,.''`.,.``. ', \_
7
+ _/\ /\ /\ /\_/, . ' , `_/~\_ .' .,. ,, , _/~\_ `. `. '., \_
8
+ &lt; ~ ~ '~`'~'`, ., . `_: ::: \_ ' `_/ ::: \_ `.,' . ', \_
9
+ \ ' `_ '`_ _ ',/ _::_::_ \ _ _/ _::_::_ \ `.,'.,`., \-,-,-,_,_,
10
+ `'~~ `'~~ `'~~ `'~~ \(_)(_)(_)/ `~~' \(_)(_)(_)/ ~'`\_.._,._,'_;_;_;_;_;
@@ -0,0 +1,9 @@
1
+ .-._ _ _ _ _ _ _ _ _
2
+ .-''-.__.-'00 '-' ' ' ' ' ' ' ' '-.
3
+ '.___ ' . .--_'-' '-' '-' _'-' '._
4
+ V: V 'vv-' '_ '. .' _..' '.'.
5
+ '=.____.=_.--' :_.__.__:_ '. : :
6
+ (((____.-' '-. / : :
7
+ (((-'\ .' /
8
+ _____..' .'
9
+ '-._____.-'
@@ -0,0 +1,22 @@
1
+ .--. .--.
2
+ / \/ \
3
+ | .-. .-. \
4
+ |/_ |/_ | \
5
+ || `\|| `\| `----.
6
+ |\0_/ \0_/ --, \_
7
+ .--"""""-. / (` \ `-.
8
+ / \-----'-. \ \
9
+ \ () () /`\ \
10
+ | .___.-' | \
11
+ \ /` \| / ;
12
+ `-.___ ___.' .-.`.---.| \
13
+ \| ``-..___,.-'`\| / / / | `\
14
+ ` \| ,`/ / / , /
15
+ ` |\ / / |\/
16
+ , .'`-; ' \/
17
+ , |\-' .' , .-'`
18
+ .-|\--;`` .-' |\.'
19
+ ( `"'-.|\ (___,.--'`'
20
+ `-. `"` _.--'
21
+ `. _.-'`-.
22
+ `''---''`` `."
@@ -0,0 +1,11 @@
1
+ _.---._ .---.
2
+ __...---' .---. `---'-. `.
3
+ ~ -~ -.-''__.--' _.'( | )`. `. `._ :
4
+ -.~~ .'__-'_ .--'' ._`---'_.-. `. `-`.
5
+ ~ ~_~-~-~_ ~ -._ -._``---. -. `-._ `.
6
+ ~- ~ ~ -_ -~ ~ -.._ _ _ _ ..-_ `. `-._``--.._
7
+ ~~-~ ~-_ _~ ~-~ ~ -~ _~~_-~ -._ `-. -. `-._``--.._.--''. ~ -~_
8
+ ~~ -~_-~ _~- _~~ _~-_~ ~-_~~ ~-.___ -._ `-.__ `. `. ~ -_~
9
+ ~~ _~- ~~- -_~ ~- ~ - _~~- _~~ ~---...__ _ ._ .` `. ~-_~
10
+ ~ ~- _~~- _-_~ ~-_ ~-~ ~_-~ _~- ~_~-_~ ~--.....--~ -~_ ~
11
+ ~ ~ - ~ ~ ~~ - ~~- ~~- ~- ~ -~ ~ ~ -~~- ~- ~-~
@@ -6,7 +6,6 @@ import random
6
6
  from pathlib import Path
7
7
  from rich import pretty
8
8
  from rich.console import Console
9
- from typing import Optional
10
9
 
11
10
 
12
11
  def print_header():
@@ -38,18 +37,13 @@ def print_logo(logo: str):
38
37
  if random.choice([True, True, False]): font_box_color(logo)
39
38
  else: character_color(logo)
40
39
  else:
41
- print("\n" + "🚫 " + "-" * 70 + " 🚫")
42
- print("🔍 Missing ASCII art dependencies. Install with: iwr bit.ly/cfgasciiartwindows | iex")
43
- print("🚫 " + "-" * 70 + " 🚫\n")
40
+ # print("\n" + "🚫 " + "-" * 70 + " 🚫")
41
+ # print("🔍 Missing ASCII art dependencies. Install with: iwr bit.ly/cfgasciiartwindows | iex")
42
+ # print("🚫 " + "-" * 70 + " 🚫\n")
44
43
  _default_art = Path(random.choice(glob.glob(str(Path(__file__).parent.joinpath("art", "*")))))
45
44
  print(_default_art.read_text())
46
45
  elif platform.system() in ["Linux", "Darwin"]: # Explicitly handle both Linux and macOS
47
- def is_executable_in_path(executable_name: str) -> Optional[str]:
48
- path_dirs = os.environ['PATH'].split(os.pathsep)
49
- for path_dir in path_dirs:
50
- path_to_executable = os.path.join(path_dir, executable_name)
51
- if os.path.isfile(path_to_executable) and os.access(path_to_executable, os.X_OK): return path_to_executable
52
- return None
46
+ from machineconfig.utils.installer_utils.installer_abc import is_executable_in_path
53
47
  avail_cowsay = is_executable_in_path("cowsay")
54
48
  avail_lolcat = is_executable_in_path("lolcat")
55
49
  avail_boxes = is_executable_in_path("boxes")
@@ -141,11 +141,12 @@ def check_tool_exists(tool_name: str) -> bool:
141
141
  return npm_check
142
142
  else:
143
143
  raise NotImplementedError(f"platform {platform.system()} not implemented")
144
- def is_executable_in_path(executable_name: str) -> bool:
144
+
145
+ def is_executable_in_path(name: str) -> bool:
145
146
  import os
146
147
  path_dirs = os.environ['PATH'].split(os.pathsep)
147
148
  for path_dir in path_dirs:
148
- path_to_executable = os.path.join(path_dir, executable_name)
149
+ path_to_executable = os.path.join(path_dir, name)
149
150
  if os.path.isfile(path_to_executable) and os.access(path_to_executable, os.X_OK): return True
150
151
  return False
151
152
 
@@ -1,4 +1,3 @@
1
-
2
1
  from pathlib import Path
3
2
  from typing import Callable, Optional, Union, Any, Protocol, List, TypeVar
4
3
  import logging
@@ -152,6 +151,64 @@ def to_pickle(obj: Any, path: Path) -> None:
152
151
  path.write_bytes(pickle.dumps(obj))
153
152
 
154
153
 
154
+ class CacheMemory[T]():
155
+ def __init__(
156
+ self, source_func: Callable[[], T], expire: timedelta, logger: LoggerTemplate, name: Optional[str] = None
157
+ ) -> None:
158
+ self.cache: T
159
+ self.source_func = source_func
160
+ self.time_produced = datetime.now()
161
+ self.logger = logger
162
+ self.expire = expire
163
+ self.name = name if isinstance(name, str) else str(self.source_func)
164
+ self.last_call_is_fresh = False
165
+
166
+ @property
167
+ def age(self) -> timedelta:
168
+ return datetime.now() - self.time_produced
169
+
170
+ def __call__(self, fresh: bool = False) -> T:
171
+ self.last_call_is_fresh = False
172
+ if fresh or not hasattr(self, "cache"):
173
+ if self.logger:
174
+ why = "There was an explicit fresh order." if fresh else "Previous cache never existed."
175
+ self.logger.warning(f"""
176
+ 🆕 ════════════════════ NEW CACHE ════════════════════
177
+ 🔄 {self.name} cache: Populating fresh cache from source func
178
+ ℹ️ Reason: {why}
179
+ ════════════════════════════════════════════════════════""")
180
+ self.cache = self.source_func()
181
+ self.last_call_is_fresh = True
182
+ self.time_produced = datetime.now()
183
+ else:
184
+ age = self.age
185
+ if age > self.expire:
186
+ if self.logger:
187
+ self.logger.warning(f"""
188
+ 🔄 ════════════════════ CACHE UPDATE ════════════════════
189
+ ⚠️ {self.name} cache: Updating cache from source func
190
+ ⏱️ Age = {age} > {self.expire}
191
+ ════════════════════════════════════════════════════════""")
192
+ self.cache = self.source_func()
193
+ self.last_call_is_fresh = True
194
+ self.time_produced = datetime.now()
195
+ else:
196
+ if self.logger:
197
+ self.logger.warning(f"""
198
+ ✅ ════════════════════ USING CACHE ════════════════════
199
+ 📦 {self.name} cache: Using cached values
200
+ ⏱️ Lag = {age}
201
+ ════════════════════════════════════════════════════════""")
202
+ return self.cache
203
+
204
+ @staticmethod
205
+ def as_decorator(expire: timedelta, logger: LoggerTemplate, name: Optional[str] = None):
206
+ def decorator(source_func: Callable[[], T2]) -> CacheMemory["T2"]:
207
+ res = CacheMemory(source_func=source_func, expire=expire, logger=logger, name=name)
208
+ return res
209
+ return decorator
210
+
211
+
155
212
  class Cache[T](): # This class helps to accelrate access to latest data coming from expensive function. The class has two flavours, memory-based and disk-based variants."""
156
213
  def __init__(
157
214
  self, source_func: Callable[[], T], expire: timedelta, logger: LoggerTemplate, path: Path, saver: Callable[[T, Path], Any] = to_pickle, reader: Callable[[Path], T] = from_pickle, name: Optional[str] = None
@@ -180,8 +237,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
180
237
  📦 ════════════════════ CACHE OPERATION ════════════════════
181
238
  🔄 {self.name} cache: Reading cached values from `{self.path}`
182
239
  ⏱️ Lag = {age}
183
- ════════════════════════════════════════════════════════════
184
- """
240
+ ════════════════════════════════════════════════════════════"""
185
241
  try:
186
242
  self.cache = self.reader(self.path)
187
243
  except Exception as ex:
@@ -190,8 +246,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
190
246
  ❌ ════════════════════ CACHE ERROR ════════════════════
191
247
  ⚠️ {self.name} cache: Cache file is corrupted
192
248
  🔍 Error: {ex}
193
- ════════════════════════════════════════════════════════
194
- """
249
+ ════════════════════════════════════════════════════════"""
195
250
  self.logger.warning(msg1 + msg2)
196
251
  self.cache = self.source_func()
197
252
  self.last_call_is_fresh = True
@@ -208,8 +263,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
208
263
  🆕 ════════════════════ NEW CACHE ════════════════════
209
264
  🔄 {self.name} cache: Populating fresh cache from source func
210
265
  ℹ️ Reason: {why}
211
- ════════════════════════════════════════════════════════
212
- """)
266
+ ════════════════════════════════════════════════════════""")
213
267
  self.cache = self.source_func() # fresh data.
214
268
  self.last_call_is_fresh = True
215
269
  self.time_produced = datetime.now()
@@ -248,21 +302,3 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
248
302
  return res
249
303
 
250
304
  return decorator
251
-
252
- # def from_cloud(self, cloud: str, rel2home: bool = True, root: Optional[str] = None):
253
- # assert self.path is not None
254
- # exists = self.path.exists()
255
- # exists_but_old = exists and ((datetime.now() - datetime.fromtimestamp(self.path.stat().st_mtime)) > self.expire)
256
- # if not exists or exists_but_old:
257
- # returned_path = self.path.from_cloud(cloud=cloud, rel2home=rel2home, root=root)
258
- # if returned_path is None and not exists:
259
- # raise FileNotFoundError(f"❌ Failed to get @ {self.path}. Build the cache first with signed API.")
260
- # elif returned_path is None and exists:
261
- # self.logger.warning(f"""
262
- # ⚠️ ════════════════════ CLOUD FETCH WARNING ════════════════════
263
- # 🔄 Failed to get fresh data from cloud
264
- # 📦 Using old cache @ {self.path}
265
- # ════════════════════════════════════════════════════════════════""")
266
- # else:
267
- # pass # maybe we don't need to fetch it from cloud, if its too hot
268
- # return self.reader(self.path)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 6.36
3
+ Version: 6.38
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -191,6 +191,7 @@ src/machineconfig/scripts/python/devops_helpers/cli_repos.py
191
191
  src/machineconfig/scripts/python/devops_helpers/cli_self.py
192
192
  src/machineconfig/scripts/python/devops_helpers/cli_share_server.py
193
193
  src/machineconfig/scripts/python/devops_helpers/cli_terminal.py
194
+ src/machineconfig/scripts/python/devops_helpers/cli_utils.py
194
195
  src/machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py
195
196
  src/machineconfig/scripts/python/devops_helpers/devops_status.py
196
197
  src/machineconfig/scripts/python/devops_helpers/devops_update_repos.py
@@ -419,6 +420,10 @@ src/machineconfig/utils/files/ascii_art.py
419
420
  src/machineconfig/utils/files/dbms.py
420
421
  src/machineconfig/utils/files/headers.py
421
422
  src/machineconfig/utils/files/read.py
423
+ src/machineconfig/utils/files/art/fat_croco.txt
424
+ src/machineconfig/utils/files/art/halfwit_croco.txt
425
+ src/machineconfig/utils/files/art/happy_croco.txt
426
+ src/machineconfig/utils/files/art/water_croco.txt
422
427
  src/machineconfig/utils/files/ouch/__init__.py
423
428
  src/machineconfig/utils/files/ouch/decompress.py
424
429
  src/machineconfig/utils/installer_utils/__init__.py
File without changes
File without changes
File without changes