machineconfig 7.38__tar.gz → 7.39__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 (457) hide show
  1. {machineconfig-7.38/src/machineconfig.egg-info → machineconfig-7.39}/PKG-INFO +1 -1
  2. {machineconfig-7.38 → machineconfig-7.39}/pyproject.toml +1 -1
  3. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/create_links.py +2 -1
  4. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/create_links_export.py +37 -8
  5. machineconfig-7.39/src/machineconfig/profile/create_shell_profile.py +136 -0
  6. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/linux/wrap_mcfg +1 -1
  7. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/croshell.py +4 -4
  8. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/define.py +1 -1
  9. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  10. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_config.py +27 -32
  11. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +12 -9
  12. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_repos.py +11 -10
  13. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_self.py +5 -7
  14. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +34 -15
  15. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
  16. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/machineconfig.py +7 -0
  17. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/terminal.py +20 -3
  18. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  19. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/wrap_mcfg.ps1 +5 -0
  20. machineconfig-7.39/src/machineconfig/settings/shells/nushell/config.nu +3 -0
  21. machineconfig-7.39/src/machineconfig/settings/shells/nushell/init.nu +127 -0
  22. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/wt/settings.json +10 -2
  23. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
  24. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
  25. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/code.py +1 -1
  26. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/links.py +3 -2
  27. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/ssh.py +1 -1
  28. {machineconfig-7.38 → machineconfig-7.39/src/machineconfig.egg-info}/PKG-INFO +1 -1
  29. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig.egg-info/SOURCES.txt +0 -1
  30. machineconfig-7.38/src/machineconfig/profile/create_shell_profile.py +0 -196
  31. machineconfig-7.38/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
  32. machineconfig-7.38/src/machineconfig/settings/shells/nushell/config.nu +0 -33
  33. machineconfig-7.38/src/machineconfig/settings/shells/nushell/init.nu +0 -61
  34. {machineconfig-7.38 → machineconfig-7.39}/MANIFEST.in +0 -0
  35. {machineconfig-7.38 → machineconfig-7.39}/README.md +0 -0
  36. {machineconfig-7.38 → machineconfig-7.39}/setup.cfg +0 -0
  37. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/__init__.py +0 -0
  38. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/__init__.py +0 -0
  39. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  40. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  41. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/distribute.py +0 -0
  42. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  43. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/job_params.py +0 -0
  44. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  45. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  46. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  47. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  48. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  49. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  50. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  51. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  52. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
  53. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
  54. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  55. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
  56. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  57. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  58. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  59. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  60. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  61. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +0 -0
  62. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +0 -0
  63. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  64. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  65. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  66. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  67. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +0 -0
  68. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +0 -0
  69. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  70. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  71. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  72. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  73. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  74. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  75. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  76. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  77. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  78. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  79. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  80. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
  81. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
  82. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
  83. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
  84. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/templates/__init__.py +0 -0
  85. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  86. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/__init__.py +0 -0
  87. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/__init__.py +0 -0
  88. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/check_installations.py +0 -0
  89. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom/boxes.py +0 -0
  90. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  91. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  92. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  93. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  94. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  95. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  96. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  97. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  98. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
  99. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  100. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  101. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  102. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  103. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  104. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  105. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  106. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  107. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  108. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  109. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  110. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  111. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  112. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/lid.sh +0 -0
  113. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  114. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/network.sh +0 -0
  115. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  116. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  117. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  118. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  119. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  120. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  121. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  122. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  123. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  124. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -0
  125. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  126. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -0
  127. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -0
  128. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/logger.py +0 -0
  129. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/__init__.py +0 -0
  130. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/backup.toml +0 -0
  131. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
  132. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/create_helper.py +0 -0
  133. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/mapper.toml +0 -0
  134. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  135. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  136. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  137. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  138. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  139. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
  140. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/__init__.py +0 -0
  141. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
  142. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
  143. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/linux/other/start_docker +0 -0
  144. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
  145. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/nu/wrap_mcfg.nu +0 -0
  146. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/__init__.py +0 -0
  147. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/agents.py +0 -0
  148. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  149. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
  150. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
  151. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  152. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  153. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  154. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  155. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  156. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  157. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  158. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  159. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  160. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  161. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  162. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  163. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  164. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  165. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  166. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  167. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  168. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  169. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  170. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  171. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  172. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  173. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  174. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  175. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  176. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  177. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ai/vscode_tasks.py +0 -0
  178. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/cloud.py +0 -0
  179. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/devops.py +0 -0
  180. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
  181. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
  182. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
  183. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  184. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/ftpx.py +0 -0
  185. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/__init__.py +0 -0
  186. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/__init__.py +0 -0
  187. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +0 -0
  188. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +0 -0
  189. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +0 -0
  190. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +0 -0
  191. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +0 -0
  192. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +0 -0
  193. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/fire_agents_help_search.py +0 -0
  194. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +0 -0
  195. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +0 -0
  196. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/templates/prompt.txt +0 -0
  197. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/templates/template.ps1 +0 -0
  198. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_agents/templates/template.sh +0 -0
  199. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_cloud/__init__.py +0 -0
  200. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_cloud/cloud_copy.py +0 -0
  201. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +0 -0
  202. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_cloud/cloud_mount.py +0 -0
  203. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_cloud/cloud_sync.py +0 -0
  204. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_cloud/helpers2.py +0 -0
  205. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_cloud/helpers5.py +0 -0
  206. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_croshell/__init__.py +0 -0
  207. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_croshell/crosh.py +0 -0
  208. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_croshell/pomodoro.py +0 -0
  209. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_croshell/scheduler.py +0 -0
  210. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_croshell/start_slidev.py +0 -0
  211. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_croshell/viewer.py +0 -0
  212. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_croshell/viewer_template.py +0 -0
  213. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/__init__.py +0 -0
  214. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_data.py +0 -0
  215. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_nw.py +0 -0
  216. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -0
  217. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_terminal.py +0 -0
  218. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -0
  219. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -0
  220. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/devops_status.py +0 -0
  221. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/devops_update_repos.py +0 -0
  222. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/themes/__init__.py +0 -0
  223. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
  224. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -0
  225. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
  226. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +0 -0
  227. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  228. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
  229. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +0 -0
  230. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  231. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
  232. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  233. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/__init__.py +0 -0
  234. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -0
  235. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +0 -0
  236. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -0
  237. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -0
  238. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -0
  239. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +0 -0
  240. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -0
  241. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_navigator/__init__.py +0 -0
  242. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_navigator/command_builder.py +0 -0
  243. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -0
  244. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -0
  245. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_navigator/data_models.py +0 -0
  246. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_navigator/main_app.py +0 -0
  247. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_navigator/search_bar.py +0 -0
  248. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/action.py +0 -0
  249. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/action_helper.py +0 -0
  250. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/clone.py +0 -0
  251. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/count_lines.py +0 -0
  252. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -0
  253. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
  254. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/record.py +0 -0
  255. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/sync.py +0 -0
  256. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_repos/update.py +0 -0
  257. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_sessions/__init__.py +0 -0
  258. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +0 -0
  259. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/interactive.py +0 -0
  260. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/msearch.py +0 -0
  261. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
  262. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/add_ssh_key.py +0 -0
  263. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
  264. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -0
  265. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
  266. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/mount_nfs +0 -0
  267. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
  268. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
  269. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
  270. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
  271. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
  272. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
  273. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -0
  274. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -0
  275. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
  276. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
  277. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/sessions.py +0 -0
  278. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/python/utils.py +0 -0
  279. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
  280. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
  281. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
  282. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
  283. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
  284. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
  285. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/__init__.py +0 -0
  286. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/broot/br.sh +0 -0
  287. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  288. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/broot/conf.toml +0 -0
  289. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/glow/glow.yml +0 -0
  290. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  291. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/helix/config.toml +0 -0
  292. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/helix/languages.toml +0 -0
  293. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/keras/keras.json +0 -0
  294. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  295. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  296. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  297. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  298. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  299. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  300. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  301. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  302. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  303. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  304. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/colors +0 -0
  305. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  306. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  307. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  308. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  309. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  310. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  311. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/icons +0 -0
  312. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  313. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  314. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  315. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  316. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  317. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  318. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  319. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  320. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  321. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  322. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  323. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/colors +0 -0
  324. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  325. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/icons +0 -0
  326. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  327. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  328. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  329. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  330. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  331. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  332. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  333. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/linters/.flake8 +0 -0
  334. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  335. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/linters/.pylintrc +0 -0
  336. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  337. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  338. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  339. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  340. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  341. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/marimo/marimo.toml +0 -0
  342. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/marimo/snippets/globalize.py +0 -0
  343. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  344. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/mprocs/windows/other +0 -0
  345. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  346. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  347. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/procs/.procs.toml +0 -0
  348. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  349. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/rofi/config.rasi +0 -0
  350. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  351. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  352. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  353. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  354. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  355. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  356. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  357. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  358. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  359. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  360. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  361. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  362. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  363. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  364. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  365. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/shells/zsh/init.sh +0 -0
  366. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/streamlit/config.toml +0 -0
  367. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  368. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  369. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  370. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/tere/terecd.sh +0 -0
  371. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  372. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  373. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  374. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  375. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/yazi/theme.toml +0 -0
  376. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  377. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zed/settings.json +0 -0
  378. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  379. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  380. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/config.kdl +0 -0
  381. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  382. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  383. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  384. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  385. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  386. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  387. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/__init__.py +0 -0
  388. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/apps.sh +0 -0
  389. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  390. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  391. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/others/android.sh +0 -0
  392. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/others/cli_installation.sh +0 -0
  393. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  394. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  395. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  396. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_linux/uv.sh +0 -0
  397. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_mac/__init__.py +0 -0
  398. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_mac/apps.sh +0 -0
  399. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_mac/apps_gui.sh +0 -0
  400. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_mac/ssh/openssh_setup.sh +0 -0
  401. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_mac/uv.sh +0 -0
  402. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/__init__.py +0 -0
  403. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/apps.ps1 +0 -0
  404. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  405. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  406. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  407. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
  408. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
  409. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  410. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/uv.ps1 +0 -0
  411. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  412. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  413. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/__init__.py +0 -0
  414. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/accessories.py +0 -0
  415. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/ai/__init__.py +0 -0
  416. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
  417. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  418. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  419. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/art/fat_croco.txt +0 -0
  420. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/art/halfwit_croco.txt +0 -0
  421. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/art/happy_croco.txt +0 -0
  422. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/art/water_croco.txt +0 -0
  423. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/ascii_art.py +0 -0
  424. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/dbms.py +0 -0
  425. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/headers.py +0 -0
  426. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
  427. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
  428. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/files/read.py +0 -0
  429. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/installer.py +0 -0
  430. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  431. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  432. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  433. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  434. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  435. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/io.py +0 -0
  436. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/meta.py +0 -0
  437. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/notifications.py +0 -0
  438. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/options.py +0 -0
  439. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/path_extended.py +0 -0
  440. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/path_helper.py +0 -0
  441. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/procs.py +0 -0
  442. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/scheduler.py +0 -0
  443. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/scheduling.py +0 -0
  444. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  445. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  446. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  447. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  448. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/source_of_truth.py +0 -0
  449. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
  450. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/terminal.py +0 -0
  451. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/tst.py +0 -0
  452. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/upgrade_packages.py +0 -0
  453. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig/utils/ve.py +0 -0
  454. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  455. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig.egg-info/entry_points.txt +0 -0
  456. {machineconfig-7.38 → machineconfig-7.39}/src/machineconfig.egg-info/requires.txt +0 -0
  457. {machineconfig-7.38 → machineconfig-7.39}/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.38
3
+ Version: 7.39
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 = "7.38"
9
+ version = "7.39"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -13,6 +13,7 @@ from rich.table import Table
13
13
 
14
14
  from machineconfig.utils.path_extended import PathExtended
15
15
  from machineconfig.utils.links import symlink_map, copy_map
16
+ from machineconfig.profile.create_links_export import ON_CONFLICT_STRICT
16
17
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT, CONFIG_ROOT
17
18
 
18
19
  import platform
@@ -79,7 +80,7 @@ def read_mapper() -> MapperFileData:
79
80
 
80
81
 
81
82
  def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
82
- on_conflict: Literal["throw-error", "overwrite-self-managed", "backup-self-managed", "overwrite-default-path", "backup-default-path"],
83
+ on_conflict: ON_CONFLICT_STRICT,
83
84
  method: Literal["symlink", "copy"]
84
85
  ):
85
86
  operation_records: list[OperationRecord] = []
@@ -1,10 +1,26 @@
1
1
 
2
2
  import typer
3
- from typing import Optional, Literal, Annotated
3
+ from typing import Optional, Literal, Annotated, TypeAlias
4
4
 
5
+ ON_CONFLICT_LOOSE: TypeAlias = Literal[
6
+ "throw-error", "t",
7
+ "overwrite-self-managed", "os",
8
+ "backup-self-managed", "bs",
9
+ "overwrite-default-path", "od",
10
+ "backup-default-path", "bd"
11
+ ]
12
+ ON_CONFLICT_STRICT: TypeAlias = Literal["throw-error", "overwrite-self-managed", "backup-self-managed", "overwrite-default-path", "backup-default-path"]
13
+ ON_CONFLICT_MAPPER: dict[str, ON_CONFLICT_STRICT] = {
14
+ "t": "throw-error",
15
+ "os": "overwrite-self-managed",
16
+ "bs": "backup-self-managed",
17
+ "od": "overwrite-default-path",
18
+ "bd": "backup-default-path"
19
+ }
5
20
 
6
- def main_public_from_parser(method: Annotated[Literal["symlink", "copy"], typer.Option(..., help="Method to use for setting up the config file.")],
7
- on_conflict: Annotated[Literal["throw-error", "overwrite-default-path", "backup-default-path"], typer.Option(..., help="Action to take on conflict")],
21
+
22
+ def main_public_from_parser(method: Annotated[Literal["symlink", "s", "copy", "c"], typer.Option(..., help="Method to use for setting up the config file.")],
23
+ on_conflict: Annotated[ON_CONFLICT_LOOSE, typer.Option(..., help="Action to take on conflict")],
8
24
  which: Annotated[Optional[str], typer.Option(..., help="Specific items to process")] = None,
9
25
  interactive: Annotated[bool, typer.Option(..., help="Run in interactive mode")] = False):
10
26
  """Terminology:
@@ -28,15 +44,21 @@ def main_public_from_parser(method: Annotated[Literal["symlink", "copy"], typer.
28
44
  from machineconfig.profile.create_links import apply_mapper
29
45
  from machineconfig.profile.create_helper import copy_assets_to_machine
30
46
  copy_assets_to_machine(which="settings") # config files live here and will be linked to.
31
- apply_mapper(mapper_data=items_objections, on_conflict=on_conflict, method=method)
47
+ method_map: dict[str, Literal["symlink", "copy"]] = {
48
+ "s": "symlink",
49
+ "symlink": "symlink",
50
+ "c": "copy",
51
+ "copy": "copy",
52
+ }
53
+ method = method_map[method]
54
+ apply_mapper(mapper_data=items_objections, on_conflict=ON_CONFLICT_MAPPER[on_conflict], method=method)
32
55
 
33
56
 
34
- def main_private_from_parser(method: Annotated[Literal["symlink", "copy"], typer.Option(..., help="Method to use for linking files")],
35
- on_conflict: Annotated[Literal["throw-error", "overwrite-self-managed", "backup-self-managed", "overwrite-default-path", "backup-default-path"], typer.Option(..., help="Action to take on conflict")] = "throw-error",
57
+ def main_private_from_parser(method: Annotated[Literal["symlink", "s", "copy", "c"], typer.Option(..., help="Method to use for linking files")],
58
+ on_conflict: Annotated[ON_CONFLICT_LOOSE, typer.Option(..., help="Action to take on conflict")] = "throw-error",
36
59
  which: Annotated[Optional[str], typer.Option(..., help="Specific items to process")] = None,
37
60
  interactive: Annotated[bool, typer.Option(..., help="Run in interactive mode")] = False):
38
61
  from machineconfig.profile.create_links import ConfigMapper, read_mapper
39
-
40
62
  mapper_full = read_mapper()["private"]
41
63
  if which is None:
42
64
  assert interactive is True
@@ -51,4 +73,11 @@ def main_private_from_parser(method: Annotated[Literal["symlink", "copy"], typer
51
73
  items_objections: dict[str, list[ConfigMapper]] = {item: mapper_full[item] for item in items_chosen if item in mapper_full}
52
74
 
53
75
  from machineconfig.profile.create_links import apply_mapper
54
- apply_mapper(mapper_data=items_objections, on_conflict=on_conflict, method=method)
76
+ method_map: dict[str, Literal["symlink", "copy"]] = {
77
+ "s": "symlink",
78
+ "symlink": "symlink",
79
+ "c": "copy",
80
+ "copy": "copy",
81
+ }
82
+ method = method_map[method]
83
+ apply_mapper(mapper_data=items_objections, on_conflict=ON_CONFLICT_MAPPER[on_conflict], method=method)
@@ -0,0 +1,136 @@
1
+ """shell"""
2
+
3
+ from pathlib import Path
4
+
5
+
6
+
7
+ def get_shell_profile_path() -> Path:
8
+ import platform
9
+ import subprocess
10
+ from rich.console import Console
11
+ from rich.panel import Panel
12
+ system = platform.system()
13
+ console = Console()
14
+ if system == "Windows":
15
+ result = subprocess.run(["pwsh", "-Command", "$PROFILE"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=False)
16
+ if result.returncode == 0 and result.stdout.strip():
17
+ profile_path = Path(result.stdout.strip())
18
+ else:
19
+ print(f"Command failed with return code {result.returncode}")
20
+ print(f"stdout: {result.stdout}")
21
+ print(f"stderr: {result.stderr}")
22
+ raise ValueError(f"""Could not get profile path for Windows. Got stdout: {result.stdout}, stderr: {result.stderr}""")
23
+ elif system == "Linux":
24
+ profile_path = Path.home().joinpath(".bashrc")
25
+ elif system == "Darwin":
26
+ profile_path = Path.home().joinpath(".zshrc")
27
+ else:
28
+ raise ValueError(f"""Not implemented for this system {system}""")
29
+ console.print(Panel(f"""🐚 SHELL PROFILE | Working with path: `{profile_path}`""", title="[bold blue]Shell Profile[/bold blue]", border_style="blue"))
30
+ return profile_path
31
+
32
+
33
+ def get_nu_shell_profile_path() -> Path:
34
+ import platform
35
+ from rich.console import Console
36
+ from rich.panel import Panel
37
+ system = platform.system()
38
+ console = Console()
39
+ if system == "Windows":
40
+ profile_path = Path.home().joinpath(r"AppData\Roaming\nushell")
41
+ elif system == "Linux":
42
+ profile_path = Path.home().joinpath(".config/nushell")
43
+ elif system == "Darwin":
44
+ profile_path = Path.home().joinpath("Library/Application Support/nushell")
45
+ else:
46
+ raise ValueError(f"""Not implemented for this system {system}""")
47
+ console.print(Panel(f"""🐚 NU SHELL PROFILE | Working with path: `{profile_path}`""", title="[bold cyan]Nu Shell Profile[/bold cyan]", border_style="cyan"))
48
+ return profile_path
49
+
50
+
51
+ def create_default_shell_profile() -> None:
52
+ shell_profile_path = get_shell_profile_path()
53
+ import platform
54
+ import subprocess
55
+ from rich.console import Console
56
+ from rich.panel import Panel
57
+ from machineconfig.utils.source_of_truth import CONFIG_ROOT
58
+ from machineconfig.utils.path_extended import PathExtended
59
+ system = platform.system()
60
+ console = Console()
61
+ if not shell_profile_path.exists():
62
+ console.print(Panel(f"""🆕 PROFILE | Profile does not exist at `{shell_profile_path}`. Creating a new one.""", title="[bold blue]Profile[/bold blue]", border_style="blue"))
63
+ shell_profile_path.parent.mkdir(parents=True, exist_ok=True)
64
+ shell_profile_path.write_text("", encoding="utf-8")
65
+ shell_profile = shell_profile_path.read_text(encoding="utf-8")
66
+ from machineconfig.profile.create_helper import copy_assets_to_machine
67
+ copy_assets_to_machine("settings") # init.ps1 or init.sh live here
68
+ copy_assets_to_machine("scripts") # init scripts are going to reference those scripts.
69
+ if system == "Windows":
70
+ init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/pwsh/init.ps1")
71
+ source_line = f""". {str(init_script.collapseuser(placeholder="$HOME"))}"""
72
+ elif system == "Linux":
73
+ init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/bash/init.sh")
74
+ source_line = f"""source {str(init_script.collapseuser(placeholder="$HOME"))}"""
75
+ elif system == "Darwin":
76
+ init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/zsh/init.sh")
77
+ source_line = f"""source {str(init_script.collapseuser(placeholder="$HOME"))}"""
78
+ else:
79
+ raise ValueError(f"""Not implemented for this system {system}""")
80
+
81
+ was_shell_updated = False
82
+ if source_line in shell_profile:
83
+ console.print(Panel("🔄 PROFILE | Skipping init script sourcing - already present in profile", title="[bold blue]Profile[/bold blue]", border_style="blue"))
84
+ else:
85
+ console.print(Panel("📝 PROFILE | Adding init script sourcing to profile", title="[bold blue]Profile[/bold blue]", border_style="blue"))
86
+ shell_profile += "\n" + source_line + "\n"
87
+ if system == "Linux":
88
+ result = subprocess.run(["cat", "/proc/version"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=False)
89
+ if result.returncode == 0 and result.stdout:
90
+ version_info = result.stdout.lower()
91
+ if "microsoft" in version_info or "wsl" in version_info:
92
+ shell_profile += "\ncd $HOME"
93
+ console.print("📌 WSL detected - adding 'cd $HOME' to profile to avoid Windows filesystem")
94
+ was_shell_updated = True
95
+ if was_shell_updated:
96
+ shell_profile_path.parent.mkdir(parents=True, exist_ok=True)
97
+ shell_profile_path.write_text(shell_profile, encoding="utf-8")
98
+ console.print(Panel("✅ Profile updated successfully", title="[bold blue]Profile[/bold blue]", border_style="blue"))
99
+
100
+
101
+ def create_nu_shell_profile() -> None:
102
+ from rich.console import Console
103
+ from rich.panel import Panel
104
+ from machineconfig.utils.source_of_truth import CONFIG_ROOT
105
+ from machineconfig.utils.path_extended import PathExtended
106
+ console = Console()
107
+ nu_profile_path = get_nu_shell_profile_path()
108
+ config_dir = nu_profile_path
109
+ config_file = config_dir.joinpath("config.nu")
110
+ if not config_dir.exists():
111
+ console.print(Panel(f"""🆕 NU SHELL CONFIG | Config directory does not exist at `{config_dir}`. Creating a new one.""", title="[bold cyan]Nu Shell Config[/bold cyan]", border_style="cyan"))
112
+ config_dir.mkdir(parents=True, exist_ok=True)
113
+ if not config_file.exists():
114
+ console.print(Panel(f"""🆕 NU SHELL CONFIG | config.nu file does not exist at `{config_file}`. Creating a new one.""", title="[bold cyan]Nu Shell Config[/bold cyan]", border_style="cyan"))
115
+ config_file.write_text("", encoding="utf-8")
116
+ config_content = config_file.read_text(encoding="utf-8")
117
+ from machineconfig.profile.create_helper import copy_assets_to_machine
118
+ copy_assets_to_machine("settings")
119
+ copy_assets_to_machine("scripts")
120
+ init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/nushell/init.nu")
121
+ source_line = f"""use {str(init_script)}"""
122
+ was_config_updated = False
123
+ if source_line in config_content:
124
+ console.print(Panel("🔄 NU SHELL CONFIG | Skipping init script sourcing - already present in config.nu", title="[bold cyan]Nu Shell Config[/bold cyan]", border_style="cyan"))
125
+ else:
126
+ console.print(Panel("📝 NU SHELL CONFIG | Adding init script sourcing to config.nu", title="[bold cyan]Nu Shell Config[/bold cyan]", border_style="cyan"))
127
+ config_content += "\n" + source_line + "\n"
128
+ was_config_updated = True
129
+ if was_config_updated:
130
+ config_dir.mkdir(parents=True, exist_ok=True)
131
+ config_file.write_text(config_content, encoding="utf-8")
132
+ console.print(Panel("✅ Nu shell config updated successfully", title="[bold cyan]Nu Shell Config[/bold cyan]", border_style="cyan"))
133
+
134
+
135
+ if __name__ == "__main__":
136
+ pass
@@ -27,7 +27,7 @@ wrap_in_shell_script() {
27
27
 
28
28
  if [[ -f "$OP_PROGRAM_PATH" ]]; then
29
29
  printf "%b\n" "${GREEN}🚀 Taking over from python script @ ${OP_PROGRAM_PATH}${RESET}"
30
- bat --style=plain --paging=never "$OP_PROGRAM_PATH"
30
+ bat --style=full --theme=OneHalfDark --paging=never "$OP_PROGRAM_PATH"
31
31
  printf "%b\n" "${GREEN}▶ Running...${RESET}"
32
32
  . "$OP_PROGRAM_PATH"
33
33
  status=$?
@@ -130,7 +130,7 @@ def croshell(
130
130
  fire_line = f"uv run --python 3.14 --with visidata,pyarrow vd {str(file_obj)}"
131
131
  elif marimo:
132
132
  if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--with marimo --project "{str(Path.home().joinpath("code/machineconfig"))}" """
133
- else: requirements = """--python 3.14 --with "marimo,machineconfig[plot]>=7.38" """
133
+ else: requirements = """--python 3.14 --with "marimo,machineconfig[plot]>=7.39" """
134
134
  fire_line = f"""
135
135
  cd {str(pyfile.parent)}
136
136
  uv run --python 3.14 --with "marimo" marimo convert {pyfile.name} -o marimo_nb.py
@@ -138,14 +138,14 @@ uv run {requirements} marimo edit --host 0.0.0.0 marimo_nb.py
138
138
  """
139
139
  elif jupyter:
140
140
  if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with jupyterlab """
141
- else: requirements = """--with "machineconfig[plot]>=7.38" """
141
+ else: requirements = """--with "machineconfig[plot]>=7.39" """
142
142
  fire_line = f"uv run {requirements} jupyter-lab {str(nb_target)}"
143
143
  elif vscode:
144
144
  fire_line = f"""
145
145
  cd {str(pyfile.parent)}
146
146
  uv init --python 3.14
147
147
  uv venv
148
- uv add "machineconfig[plot]>=7.38"
148
+ uv add "machineconfig[plot]>=7.39"
149
149
  # code serve-web
150
150
  code --new-window {str(pyfile)}
151
151
  """
@@ -153,7 +153,7 @@ code --new-window {str(pyfile)}
153
153
  if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
154
154
  else: profile = ""
155
155
  if Path.home().joinpath("code/machineconfig").exists(): ve_line = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" """
156
- else: ve_line = """--python 3.14 --with "machineconfig[plot]>=7.38" """
156
+ else: ve_line = """--python 3.14 --with "machineconfig[plot]>=7.39" """
157
157
  # ve_path_maybe, ipython_profile_maybe = get_ve_path_and_ipython_profile(Path.cwd())
158
158
  # --python 3.14
159
159
  fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
@@ -5,10 +5,10 @@ Minimalist programs that only print scripts without frills so it can be sourced
5
5
 
6
6
 
7
7
  import typer
8
- import platform
9
8
 
10
9
 
11
10
  def define_scripts():
11
+ import platform
12
12
  if platform.system() != "Linux":
13
13
  raise RuntimeError("This command is only supported on Linux systems.")
14
14
  from machineconfig.setup_linux import INTERACTIVE as script_path
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "machineconfig>=7.38",
5
+ # "machineconfig>=7.39",
6
6
  # "textual",
7
7
  # "pyperclip",
8
8
  # ]
@@ -1,33 +1,22 @@
1
1
 
2
2
 
3
- from typing import Literal, Annotated, Optional
3
+ from typing import Literal, Annotated
4
4
  from pathlib import Path
5
5
  import typer
6
6
  import machineconfig.scripts.python.helpers_devops.cli_config_dotfile as dotfile_module
7
+ import machineconfig.profile.create_links_export as create_links_export
7
8
 
8
-
9
- def private(method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--method", "-m", help="Method to use for linking files")],
10
- on_conflict: Annotated[Literal["throw-error", "overwrite-self-managed", "backup-self-managed", "overwrite-default-path", "backup-default-path"], typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
11
- which: Annotated[Optional[str], typer.Option(..., "--which", "-w", help="Specific items to process")] = None,
12
- interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Run in interactive mode")] = False):
13
- """🔗 Manage private configuration files."""
14
- import machineconfig.profile.create_links_export as create_links_export
15
- create_links_export.main_private_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
16
-
17
-
18
- def public(method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--method", "-m", help="Method to use for setting up the config file.")],
19
- on_conflict: Annotated[Literal["throw-error", "overwrite-default-path", "backup-default-path"], typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
20
- which: Annotated[Optional[str], typer.Option(..., "--which", "-w", help="Specific items to process")] = None,
21
- interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Run in interactive mode")] = False):
22
- """🔗 Manage public configuration files."""
23
- import machineconfig.profile.create_links_export as create_links_export
24
- create_links_export.main_public_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
25
-
26
-
27
- def shell():
9
+ def shell(which: Annotated[Literal["default", "d", "nushell", "n"], typer.Option(..., "--which", "-w", help="Which shell profile to create/configure")]="default"):
28
10
  """🔗 Configure your shell profile."""
29
- from machineconfig.profile.create_shell_profile import create_default_shell_profile
30
- create_default_shell_profile()
11
+ from machineconfig.profile.create_shell_profile import create_default_shell_profile, create_nu_shell_profile
12
+ match which:
13
+ case "nushell" | "n":
14
+ create_nu_shell_profile()
15
+ return
16
+ case "default" | "d":
17
+ create_default_shell_profile()
18
+ return
19
+ typer.echo(f"[red]Error:[/] Unknown shell profile type: {which}")
31
20
 
32
21
 
33
22
  def path():
@@ -39,7 +28,7 @@ def path():
39
28
  uv_with = ["textual"]
40
29
  uv_project_dir = None
41
30
  if not Path.home().joinpath("code/machineconfig").exists():
42
- uv_with.append("machineconfig>=7.38")
31
+ uv_with.append("machineconfig>=7.39")
43
32
  else:
44
33
  uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
45
34
  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])
@@ -82,23 +71,29 @@ def starship_theme():
82
71
  typer.echo("❌ Please enter a valid number")
83
72
 
84
73
 
85
- def copy_assets(which: Annotated[Literal["scripts", "settings", "both"], typer.Argument(..., help="Which assets to copy")]):
74
+ def copy_assets(which: Annotated[Literal["scripts", "s", "settings", "t", "both", "b"], typer.Argument(..., help="Which assets to copy")]):
86
75
  """🔗 Copy asset files from library to machine."""
87
76
  import machineconfig.profile.create_helper as create_helper
88
77
  match which:
89
- case "both":
78
+ case "both" | "b":
79
+ create_helper.copy_assets_to_machine(which="scripts")
80
+ create_helper.copy_assets_to_machine(which="settings")
81
+ return
82
+ case "scripts" | "s":
90
83
  create_helper.copy_assets_to_machine(which="scripts")
84
+ return
85
+ case "settings" | "t":
91
86
  create_helper.copy_assets_to_machine(which="settings")
92
- case _:
93
- create_helper.copy_assets_to_machine(which=which)
87
+ return
88
+ typer.echo(f"[red]Error:[/] Unknown asset type: {which}")
94
89
 
95
90
 
96
91
  def get_app():
97
92
  config_apps = typer.Typer(help="⚙️ [c] configuration subcommands", no_args_is_help=True, add_help_option=False, add_completion=False)
98
- config_apps.command("private", no_args_is_help=True, help="🔗 [v] Manage private configuration files.")(private)
99
- config_apps.command("v", no_args_is_help=True, hidden=True)(private)
100
- config_apps.command("public", no_args_is_help=True, help="🔗 [b] Manage public configuration files.")(public)
101
- config_apps.command("b", no_args_is_help=True, help="Manage public configuration files.", hidden=True)(public)
93
+ config_apps.command("private", no_args_is_help=True, help="🔗 [v] Manage private configuration files.")(create_links_export.main_private_from_parser)
94
+ config_apps.command("v", no_args_is_help=True, hidden=True)(create_links_export.main_private_from_parser)
95
+ config_apps.command("public", no_args_is_help=True, help="🔗 [b] Manage public configuration files.")(create_links_export.main_public_from_parser)
96
+ config_apps.command("b", no_args_is_help=True, help="Manage public configuration files.", hidden=True)(create_links_export.main_public_from_parser)
102
97
  config_apps.command("dotfile", no_args_is_help=True, help="🔗 [d] Manage dotfiles.")(dotfile_module.main)
103
98
  config_apps.command("d", no_args_is_help=True, hidden=True)(dotfile_module.main)
104
99
  config_apps.command("shell", no_args_is_help=False, help="🔗 [s] Configure your shell profile.")(shell)
@@ -1,24 +1,26 @@
1
1
 
2
2
  """Like yadm and dotter."""
3
3
 
4
+ from machineconfig.profile.create_links_export import ON_CONFLICT_LOOSE, ON_CONFLICT_MAPPER
4
5
  from typing import Annotated, Literal
5
6
  import typer
6
7
 
7
8
 
9
+
8
10
  def main(
9
11
  file: Annotated[str, typer.Argument(help="file/folder path.")],
10
- method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--method", "-m", help="Method to use for linking files")] = "copy",
11
- on_conflict: Annotated[Literal["throw-error", "overwrite-self-managed", "backup-self-managed", "overwrite-default-path", "backup-default-path"], typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
12
- sensitivity: Annotated[Literal["private", "public"], typer.Option(..., "--sensitivity", "-s", help="Sensitivity of the config file.")] = "private",
12
+ method: Annotated[Literal["symlink", "s", "copy", "c"], typer.Option(..., "--method", "-m", help="Method to use for linking files")] = "copy",
13
+ on_conflict: Annotated[ON_CONFLICT_LOOSE, typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
14
+ sensitivity: Annotated[Literal["private", "v", "public", "b"], typer.Option(..., "--sensitivity", "-s", help="Sensitivity of the config file.")] = "private",
13
15
  destination: Annotated[str, typer.Option("--destination", "-d", help="destination folder (override the default, use at your own risk)")] = "",) -> None:
14
16
  from rich.console import Console
15
17
  from rich.panel import Panel
16
18
  from machineconfig.utils.links import symlink_map, copy_map
17
19
  from pathlib import Path
18
20
  match sensitivity:
19
- case "private":
21
+ case "private" | "v":
20
22
  backup_root = Path.home().joinpath("dotfiles/mapper")
21
- case "public":
23
+ case "public" | "b":
22
24
  from machineconfig.utils.source_of_truth import CONFIG_ROOT
23
25
  backup_root = Path(CONFIG_ROOT).joinpath("dotfiles/mapper")
24
26
 
@@ -32,18 +34,19 @@ def main(
32
34
  dest_path.mkdir(parents=True, exist_ok=True)
33
35
  new_path = dest_path.joinpath(orig_path.name)
34
36
 
37
+
35
38
  from machineconfig.utils.path_extended import PathExtended
36
39
  match method:
37
- case "copy":
40
+ case "copy" | "c":
38
41
  try:
39
- copy_map(config_file_default_path=PathExtended(orig_path), self_managed_config_file_path=PathExtended(new_path), on_conflict=on_conflict)
42
+ copy_map(config_file_default_path=PathExtended(orig_path), self_managed_config_file_path=PathExtended(new_path), on_conflict=ON_CONFLICT_MAPPER[on_conflict])
40
43
  except Exception as e:
41
44
  typer.echo(f"[red]Error:[/] {e}")
42
45
  typer.Exit(code=1)
43
46
  return
44
- case "symlink":
47
+ case "symlink" | "s":
45
48
  try:
46
- symlink_map(config_file_default_path=PathExtended(orig_path), self_managed_config_file_path=PathExtended(new_path), on_conflict=on_conflict)
49
+ symlink_map(config_file_default_path=PathExtended(orig_path), self_managed_config_file_path=PathExtended(new_path), on_conflict=ON_CONFLICT_MAPPER[on_conflict])
47
50
  except Exception as e:
48
51
  typer.echo(f"[red]Error:[/] {e}")
49
52
  typer.Exit(code=1)
@@ -8,38 +8,38 @@ in the event that username@github.com is not mentioned in the remote url.
8
8
  from pathlib import Path
9
9
  from typing import Annotated, Optional
10
10
  import typer
11
- from machineconfig.scripts.python.helpers_repos.secure_repo import main as secure_repo_main
11
+ from machineconfig.scripts.python.helpers_repos.cloud_repo_sync import main as secure_repo_main
12
12
 
13
13
 
14
14
  DirectoryArgument = Annotated[Optional[str], typer.Argument(help="📁 Directory containing repo(s).")]
15
15
  RecursiveOption = Annotated[bool, typer.Option("--recursive", "-r", help="🔍 Recurse into nested repositories.")]
16
- NO_UVsyncOption = Annotated[bool, typer.Option("--no-uv-sync", "-ns", help="🚫 Disable automatic uv sync after pulls.")]
16
+ UVsyncOption = Annotated[bool, typer.Option("--uv-sync/--no-uv-sync", "-u/-ns", help="Automatic uv sync after pulls.")]
17
17
  CloudOption = Annotated[Optional[str], typer.Option("--cloud", "-c", help="☁️ Upload to or download from this cloud remote.")]
18
18
 
19
19
 
20
- def push(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_uv_sync: NO_UVsyncOption = False) -> None:
20
+ def push(directory: DirectoryArgument = None, recursive: RecursiveOption = False, auto_uv_sync: UVsyncOption = False) -> None:
21
21
  """🚀 Push changes across repositories."""
22
22
  from machineconfig.scripts.python.helpers_repos.entrypoint import git_operations
23
- git_operations(directory, pull=False, commit=False, push=True, recursive=recursive, auto_uv_sync=not no_uv_sync)
23
+ git_operations(directory, pull=False, commit=False, push=True, recursive=recursive, auto_uv_sync=auto_uv_sync)
24
24
 
25
25
 
26
- def pull(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_uv_sync: NO_UVsyncOption = False) -> None:
26
+ def pull(directory: DirectoryArgument = None, recursive: RecursiveOption = False, auto_uv_sync: UVsyncOption = False) -> None:
27
27
  """⬇️ Pull changes across repositories."""
28
28
  from machineconfig.scripts.python.helpers_repos.entrypoint import git_operations
29
29
 
30
- git_operations(directory, pull=True, commit=False, push=False, recursive=recursive, auto_uv_sync=not no_uv_sync)
30
+ git_operations(directory, pull=True, commit=False, push=False, recursive=recursive, auto_uv_sync=auto_uv_sync)
31
31
 
32
32
 
33
- def commit(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_uv_sync: NO_UVsyncOption = False) -> None:
33
+ def commit(directory: DirectoryArgument = None, recursive: RecursiveOption = False, auto_uv_sync: UVsyncOption = False) -> None:
34
34
  """💾 Commit changes across repositories."""
35
35
  from machineconfig.scripts.python.helpers_repos.entrypoint import git_operations
36
- git_operations(directory, pull=False, commit=True, push=False, recursive=recursive, auto_uv_sync=not no_uv_sync)
36
+ git_operations(directory, pull=False, commit=True, push=False, recursive=recursive, auto_uv_sync=auto_uv_sync)
37
37
 
38
38
 
39
- def sync(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_uv_sync: NO_UVsyncOption = False) -> None:
39
+ def sync(directory: DirectoryArgument = None, recursive: RecursiveOption = False, auto_uv_sync: UVsyncOption = False) -> None:
40
40
  """🔄 Pull, commit, and push changes across repositories."""
41
41
  from machineconfig.scripts.python.helpers_repos.entrypoint import git_operations
42
- git_operations(directory, pull=True, commit=True, push=True, recursive=recursive, auto_uv_sync=not no_uv_sync)
42
+ git_operations(directory, pull=True, commit=True, push=True, recursive=recursive, auto_uv_sync=auto_uv_sync)
43
43
 
44
44
 
45
45
  def capture(directory: DirectoryArgument = None, cloud: CloudOption = None) -> None:
@@ -179,3 +179,4 @@ def get_app():
179
179
  mirror_app.command(name="ctb", help="Check out to the main branch defined in the specification", hidden=True)(checkout_to_branch_command)
180
180
 
181
181
  return repos_apps
182
+
@@ -9,10 +9,8 @@ def copy_both_assets():
9
9
  create_helper.copy_assets_to_machine(which="settings")
10
10
 
11
11
 
12
- def update(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-na", help="Copy (overwrite) assets to the machine after the update")] = False):
12
+ def update(copy_assets: Annotated[bool, typer.Option("--assets-copy/--no-assets-copy", "-a/-na", help="Copy (overwrite) assets to the machine after the update")] = True):
13
13
  """🔄 UPDATE uv and machineconfig"""
14
- # from machineconfig.utils.source_of_truth import LIBRARY_ROOT
15
- # repo_root = LIBRARY_ROOT.parent.parent
16
14
  from pathlib import Path
17
15
  if Path.home().joinpath("code", "machineconfig").exists():
18
16
  shell_script = """
@@ -36,7 +34,7 @@ uv tool install --upgrade machineconfig
36
34
  else:
37
35
  from machineconfig.utils.code import run_shell_script
38
36
  run_shell_script(shell_script)
39
- if not no_copy_assets:
37
+ if copy_assets:
40
38
  copy_both_assets()
41
39
 
42
40
  def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-na", help="Copy (overwrite) assets to the machine after the update")] = False):
@@ -48,9 +46,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
48
46
  else:
49
47
  import platform
50
48
  if platform.system() == "Windows":
51
- run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.38" """)
49
+ run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.39" """)
52
50
  else:
53
- run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.38" """)
51
+ run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.39" """)
54
52
  from machineconfig.profile.create_shell_profile import create_default_shell_profile
55
53
  if not no_copy_assets:
56
54
  create_default_shell_profile() # involves copying assets too
@@ -75,7 +73,7 @@ def navigate():
75
73
  path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
76
74
  from machineconfig.utils.code import run_shell_script
77
75
  if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
78
- else: executable = """--with "machineconfig>=7.38,textual" """
76
+ else: executable = """--with "machineconfig>=7.39,textual" """
79
77
  run_shell_script(f"""uv run {executable} {path}""")
80
78
 
81
79
 
@@ -1,28 +1,47 @@
1
- import git
2
- from rich.console import Console
3
- from rich.panel import Panel
4
- import typer
5
1
 
6
- from machineconfig.utils.path_extended import PathExtended
7
- from machineconfig.utils.terminal import Response
8
- from machineconfig.utils.source_of_truth import CONFIG_ROOT, DEFAULTS_PATH
9
- from machineconfig.utils.code import get_uv_command_executing_python_script
10
- from pathlib import Path
11
- import platform
12
- import subprocess
13
2
  from typing import Optional, Literal, Annotated
14
3
 
15
-
16
- console = Console()
4
+ import typer
17
5
 
18
6
 
19
7
  def main(
20
8
  cloud: Annotated[Optional[str], typer.Option(..., "--cloud", "-c", help="Cloud storage profile name. If not provided, uses default from config.")] = None,
21
9
  repo: Annotated[Optional[str], typer.Option(..., "--repo", "-r", help="Path to the local repository. Defaults to current working directory.")] = None,
22
10
  message: Annotated[Optional[str], typer.Option(..., "--message", "-m", help="Commit message for local changes.")] = None,
23
- on_conflict: Annotated[Literal["ask", "push-local-merge", "overwrite-local", "stop-on-conflict", "remove-rclone-conflict"], typer.Option(..., "--on-conflict", "-oc", help="Action to take on merge conflict. Default is 'ask'.")] = "ask",
11
+ on_conflict: Annotated[Literal["ask", "a",
12
+ "push-local-merge", "p",
13
+ "overwrite-local", "o",
14
+ "stop-on-conflict", "s",
15
+ "remove-rclone-conflict", "r"
16
+ ], typer.Option(..., "--on-conflict", "-o", help="Action to take on merge conflict. Default is 'ask'.")] = "ask",
24
17
  pwd: Annotated[Optional[str], typer.Option(..., "--password", help="Password for encryption/decryption of the remote repository.")] = None,
25
18
  ):
19
+ on_conflict_mapper: dict[str, Literal["ask", "push-local-merge", "overwrite-local", "stop-on-conflict", "remove-rclone-conflict"]] = {
20
+ "a": "ask",
21
+ "ask": "ask",
22
+ "p": "push-local-merge",
23
+ "push-local-merge": "push-local-merge",
24
+ "o": "overwrite-local",
25
+ "overwrite-local": "overwrite-local",
26
+ "s": "stop-on-conflict",
27
+ "stop-on-conflict": "stop-on-conflict",
28
+ "r": "remove-rclone-conflict",
29
+ "remove-rclone-conflict": "remove-rclone-conflict",
30
+ }
31
+ on_conflict = on_conflict_mapper[on_conflict]
32
+ import git
33
+ from rich.console import Console
34
+ from rich.panel import Panel
35
+
36
+ from machineconfig.utils.path_extended import PathExtended
37
+ from machineconfig.utils.terminal import Response
38
+ from machineconfig.utils.source_of_truth import CONFIG_ROOT, DEFAULTS_PATH
39
+ from machineconfig.utils.code import get_uv_command_executing_python_script
40
+ from pathlib import Path
41
+ import platform
42
+ import subprocess
43
+ console = Console()
44
+
26
45
  if cloud is None:
27
46
  try:
28
47
  from machineconfig.utils.io import read_ini
@@ -80,7 +99,7 @@ git pull originEnc master
80
99
  uv_project_dir = f"""{str(Path.home().joinpath("code/machineconfig"))}"""
81
100
  uv_with = None
82
101
  else:
83
- uv_with = ["machineconfig>=7.38"]
102
+ uv_with = ["machineconfig>=7.39"]
84
103
  uv_project_dir = None
85
104
 
86
105
  import tempfile