machineconfig 5.18__tar.gz → 5.20__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 (430) hide show
  1. {machineconfig-5.18/src/machineconfig.egg-info → machineconfig-5.20}/PKG-INFO +1 -1
  2. {machineconfig-5.18 → machineconfig-5.20}/pyproject.toml +1 -1
  3. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/create.py +84 -66
  4. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/devops.py +33 -16
  5. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/interactive.py +12 -14
  6. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/repos.py +10 -10
  7. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/links.py +137 -101
  8. {machineconfig-5.18 → machineconfig-5.20/src/machineconfig.egg-info}/PKG-INFO +1 -1
  9. {machineconfig-5.18 → machineconfig-5.20}/MANIFEST.in +0 -0
  10. {machineconfig-5.18 → machineconfig-5.20}/README.md +0 -0
  11. {machineconfig-5.18 → machineconfig-5.20}/setup.cfg +0 -0
  12. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/__init__.py +0 -0
  13. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/__init__.py +0 -0
  14. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  15. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  16. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/distribute.py +0 -0
  17. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  18. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/job_params.py +0 -0
  19. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  20. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  21. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  22. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  23. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  24. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  25. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  26. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  27. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/ffile.py +0 -0
  28. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  29. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  30. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  31. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  32. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  33. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  34. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  35. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  36. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  37. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  38. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  39. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  40. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  41. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  42. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  43. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  44. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  45. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  46. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  47. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  48. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  49. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  50. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  51. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/templates/__init__.py +0 -0
  52. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  53. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/__init__.py +0 -0
  54. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/__init__.py +0 -0
  55. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  56. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  57. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  58. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  59. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  60. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  61. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  62. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  63. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  64. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  65. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  66. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  67. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  68. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  69. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  70. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  71. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  72. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  73. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  74. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  75. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  76. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  77. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  78. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  79. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  80. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  81. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  82. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  83. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  84. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  85. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  86. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  87. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  88. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  89. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  90. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/python/__init__.py +0 -0
  91. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/python/check_installations.py +0 -0
  92. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  93. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  94. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  95. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  96. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  97. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  98. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  99. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  100. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  101. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  102. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/logger.py +0 -0
  103. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/__init__.py +0 -0
  104. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/create_frontend.py +0 -0
  105. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  106. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  107. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  108. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  109. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  110. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/profile/shell.py +0 -0
  111. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/__init__.py +0 -0
  112. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/cloud/init.sh +0 -0
  113. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/agents +0 -0
  114. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  115. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  116. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  117. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  118. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  119. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/croshell +0 -0
  120. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/devops +0 -0
  121. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/fire +0 -0
  122. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/ftpx +0 -0
  123. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/fzf2g +0 -0
  124. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/fzfag +0 -0
  125. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/fzffg +0 -0
  126. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/fzfg +0 -0
  127. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/fzfrga +0 -0
  128. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/gh_models +0 -0
  129. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/initai +0 -0
  130. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/kill_process +0 -0
  131. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/mount_drive +0 -0
  132. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  133. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  134. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/mount_smb +0 -0
  135. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/scheduler +0 -0
  136. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/sessions +0 -0
  137. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  138. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/share_nfs +0 -0
  139. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/share_smb +0 -0
  140. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/skrg +0 -0
  141. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/start_docker +0 -0
  142. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/start_slidev +0 -0
  143. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/start_terminals +0 -0
  144. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/switch_ip +0 -0
  145. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  146. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  147. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/linux/z_ls +0 -0
  148. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/__init__.py +0 -0
  149. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/agents.py +0 -0
  150. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  151. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  152. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  153. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  154. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  155. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  156. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  157. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  158. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  159. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  160. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  161. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  162. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  163. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  164. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  165. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  166. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  167. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  168. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  169. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  170. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  171. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  172. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  173. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  174. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  175. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  176. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  177. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  178. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  179. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  180. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  181. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  182. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  183. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/count_lines.py +0 -0
  184. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/count_lines_frontend.py +0 -0
  185. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/croshell.py +0 -0
  186. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  187. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  188. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  189. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
  190. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/dotfile.py +0 -0
  191. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
  192. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
  193. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_agents_helper_types.py +0 -0
  194. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
  195. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  196. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  197. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_jobs_route_helper.py +0 -0
  198. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  199. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/ftpx.py +0 -0
  200. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  201. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/gh_models.py +0 -0
  202. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  203. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  204. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  205. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  206. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  207. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  208. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  209. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  210. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  211. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  212. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  213. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/repos_helper.py +0 -0
  214. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
  215. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
  216. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
  217. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
  218. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/scheduler.py +0 -0
  219. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/sessions.py +0 -0
  220. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/share_terminal.py +0 -0
  221. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/snapshot.py +0 -0
  222. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  223. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  224. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/t4.py +0 -0
  225. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/viewer.py +0 -0
  226. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  227. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  228. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  229. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/agents.ps1 +0 -0
  230. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  231. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  232. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  233. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  234. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  235. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  236. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  237. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  238. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  239. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  240. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  241. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  242. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  243. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  244. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
  245. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  246. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  247. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  248. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  249. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  250. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  251. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  252. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  253. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  254. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/sessions.ps1 +0 -0
  255. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  256. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  257. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  258. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  259. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  260. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  261. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  262. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  263. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  264. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  265. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/__init__.py +0 -0
  266. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/broot/br.sh +0 -0
  267. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  268. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/broot/conf.toml +0 -0
  269. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/glow/glow.yml +0 -0
  270. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  271. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/helix/config.toml +0 -0
  272. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/helix/languages.toml +0 -0
  273. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/keras/keras.json +0 -0
  274. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  275. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  276. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  277. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  278. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  279. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  280. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  281. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  282. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  283. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  284. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/colors +0 -0
  285. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  286. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  287. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  288. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  289. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  290. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  291. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/icons +0 -0
  292. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  293. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  294. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  295. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  296. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  297. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  298. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  299. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  300. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  301. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  302. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  303. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/colors +0 -0
  304. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  305. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/icons +0 -0
  306. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  307. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  308. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  309. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  310. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  311. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  312. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  313. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/linters/.flake8 +0 -0
  314. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  315. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/linters/.pylintrc +0 -0
  316. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  317. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  318. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  319. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  320. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  321. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  322. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/mprocs/windows/other +0 -0
  323. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  324. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  325. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/procs/.procs.toml +0 -0
  326. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  327. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/rofi/config.rasi +0 -0
  328. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  329. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  330. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  331. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  332. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  333. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  334. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  335. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  336. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  337. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  338. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  339. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  340. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  341. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  342. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  343. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  344. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  345. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/streamlit/config.toml +0 -0
  346. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  347. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  348. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  349. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/tere/terecd.sh +0 -0
  350. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  351. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  352. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  353. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  354. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/yazi/theme.toml +0 -0
  355. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  356. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zed/settings.json +0 -0
  357. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  358. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  359. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/config.kdl +0 -0
  360. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  361. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  362. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  363. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  364. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  365. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  366. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/__init__.py +0 -0
  367. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/apps.sh +0 -0
  368. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  369. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  370. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  371. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  372. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/repos.sh +0 -0
  373. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  374. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  375. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/ve.sh +0 -0
  376. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  377. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  378. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/__init__.py +0 -0
  379. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/apps.ps1 +0 -0
  380. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  381. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  382. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  383. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/repos.ps1 +0 -0
  384. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  385. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/ssh/openssh-server_add-sshkey.ps1 +0 -0
  386. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/ssh/openssh-server_add_identity.ps1 +0 -0
  387. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/ssh/openssh_all.ps1 +0 -0
  388. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/ve.ps1 +0 -0
  389. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  390. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  391. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  392. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/__init__.py +0 -0
  393. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/accessories.py +0 -0
  394. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/ai/__init__.py +0 -0
  395. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  396. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  397. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  398. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/code.py +0 -0
  399. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/files/ascii_art.py +0 -0
  400. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/files/dbms.py +0 -0
  401. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/files/headers.py +0 -0
  402. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/files/read.py +0 -0
  403. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/installer.py +0 -0
  404. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  405. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  406. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  407. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  408. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  409. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/io.py +0 -0
  410. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/notifications.py +0 -0
  411. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/options.py +0 -0
  412. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/path_extended.py +0 -0
  413. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/path_helper.py +0 -0
  414. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/procs.py +0 -0
  415. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/scheduler.py +0 -0
  416. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/scheduling.py +0 -0
  417. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  418. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  419. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  420. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  421. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/source_of_truth.py +0 -0
  422. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/ssh.py +0 -0
  423. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/terminal.py +0 -0
  424. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/upgrade_packages.py +0 -0
  425. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig/utils/ve.py +0 -0
  426. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig.egg-info/SOURCES.txt +0 -0
  427. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  428. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig.egg-info/entry_points.txt +0 -0
  429. {machineconfig-5.18 → machineconfig-5.20}/src/machineconfig.egg-info/requires.txt +0 -0
  430. {machineconfig-5.18 → machineconfig-5.20}/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: 5.18
3
+ Version: 5.20
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 = "5.18"
9
+ version = "5.20"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -4,6 +4,7 @@ This script Takes away all config files from the computer, place them in one dir
4
4
 
5
5
  """
6
6
 
7
+ from machineconfig.utils.links import OperationRecord
7
8
  from rich.console import Console
8
9
  from rich.panel import Panel
9
10
  from rich.pretty import Pretty
@@ -12,7 +13,7 @@ from rich.table import Table
12
13
 
13
14
  from machineconfig.utils.path_extended import PathExtended
14
15
  from machineconfig.utils.links import symlink_map, copy_map
15
- from machineconfig.utils.source_of_truth import LIBRARY_ROOT
16
+ from machineconfig.utils.source_of_truth import LIBRARY_ROOT, CONFIG_PATH
16
17
 
17
18
  import platform
18
19
  import subprocess
@@ -40,7 +41,6 @@ class Base(TypedDict):
40
41
  to_this: str
41
42
  contents: Optional[bool]
42
43
  copy: Optional[bool]
43
-
44
44
  class ConfigMapper(TypedDict):
45
45
  file_name: str
46
46
  config_file_default_path: str
@@ -74,31 +74,6 @@ def read_mapper() -> MapperFileData:
74
74
  return {"public": public, "private": private}
75
75
 
76
76
 
77
- class OperationRecord(TypedDict):
78
- program: str
79
- file_key: str
80
- source: str
81
- target: str
82
- operation: str
83
- action: Literal[
84
- "already_linked",
85
- "relinking",
86
- "fixing_broken_link",
87
- "identical_files",
88
- "backing_up_source",
89
- "backing_up_target",
90
- "relinking_to_new_target",
91
- "moving_to_target",
92
- "new_link",
93
- "new_link_and_target",
94
- "linking",
95
- "copying",
96
- "error"
97
- ]
98
- details: str
99
- status: str
100
-
101
-
102
77
  def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
103
78
  on_conflict: Literal["throwError", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"],
104
79
  method: Literal["symlink", "copy"]
@@ -135,80 +110,104 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
135
110
  self_managed_config_file_path = PathExtended(a_mapper["self_managed_config_file_path"].replace("LIBRARY_ROOT", LIBRARY_ROOT.as_posix()))
136
111
 
137
112
  # Determine whether to use copy or symlink
138
- use_copy = method == "copy" or "copy" in a_mapper
113
+ use_copy = method == "copy" or a_mapper.get("copy", False)
139
114
 
140
115
  if "contents" in a_mapper:
141
- try:
142
- targets = list(self_managed_config_file_path.expanduser().search("*"))
143
- for a_target in targets:
116
+ targets = list(self_managed_config_file_path.expanduser().search("*"))
117
+ for a_target in targets:
118
+ operation_type = "contents_copy" if use_copy else "contents_symlink"
119
+ try:
144
120
  if use_copy:
145
121
  result = copy_map(config_file_default_path=config_file_default_path.joinpath(a_target.name), self_managed_config_file_path=a_target, on_conflict=on_conflict)
146
- operation_type = "contents_copy"
147
122
  else:
148
123
  result = symlink_map(config_file_default_path=config_file_default_path.joinpath(a_target.name), self_managed_config_file_path=a_target, on_conflict=on_conflict)
149
- operation_type = "contents_symlink"
150
124
  operation_records.append({
151
125
  "program": program_name,
152
126
  "file_key": a_mapper["file_name"],
153
- "source": str(config_file_default_path.joinpath(a_target.name)),
154
- "target": str(a_target),
127
+ "defaultPath": str(config_file_default_path.joinpath(a_target.name)),
128
+ "selfManaged": str(a_target),
155
129
  "operation": operation_type,
156
130
  "action": result["action"],
157
131
  "details": result["details"],
158
132
  "status": "success"
159
133
  })
160
- except Exception as ex:
161
- console.print(f" [red]Config error[/red]: {program_name} | {a_mapper['file_name']} | missing keys 'config_file_default_path ==> self_managed_config_file_path'. {ex}")
162
- operation_records.append({
163
- "program": program_name,
164
- "file_key": a_mapper["file_name"],
165
- "source": str(config_file_default_path),
166
- "target": str(self_managed_config_file_path),
167
- "operation": "contents_symlink" if not use_copy else "contents_copy",
168
- "action": "error",
169
- "details": f"Failed to process contents: {str(ex)}",
170
- "status": f"error: {str(ex)}"
171
- })
134
+ except ValueError as ex:
135
+ if "resolve to the same location" in str(ex):
136
+ operation_records.append({
137
+ "program": program_name,
138
+ "file_key": a_mapper["file_name"],
139
+ "defaultPath": str(config_file_default_path.joinpath(a_target.name)),
140
+ "selfManaged": str(a_target),
141
+ "operation": operation_type,
142
+ "action": "already_linked",
143
+ "details": "defaultPath and selfManaged resolve to same location - already correctly configured",
144
+ "status": "success"
145
+ })
146
+ else:
147
+ raise
148
+ except Exception as ex:
149
+ console.print(f"❌ [red]Config error[/red]: {program_name} | {a_mapper['file_name']} | {a_target.name}. {ex}")
150
+ operation_records.append({
151
+ "program": program_name,
152
+ "file_key": a_mapper["file_name"],
153
+ "defaultPath": str(config_file_default_path.joinpath(a_target.name)),
154
+ "selfManaged": str(a_target),
155
+ "operation": operation_type,
156
+ "action": "error",
157
+ "details": f"Failed to process contents: {str(ex)}",
158
+ "status": f"error: {str(ex)}"
159
+ })
172
160
  else:
161
+ operation_type = "copy" if use_copy else "symlink"
173
162
  try:
174
163
  if use_copy:
175
164
  result = copy_map(config_file_default_path=config_file_default_path, self_managed_config_file_path=self_managed_config_file_path, on_conflict=on_conflict)
176
- operation_type = "copy"
177
165
  else:
178
166
  result = symlink_map(config_file_default_path=config_file_default_path, self_managed_config_file_path=self_managed_config_file_path, on_conflict=on_conflict)
179
- operation_type = "symlink"
180
167
  operation_records.append({
181
168
  "program": program_name,
182
169
  "file_key": a_mapper["file_name"],
183
- "source": str(config_file_default_path),
184
- "target": str(self_managed_config_file_path),
170
+ "defaultPath": str(config_file_default_path),
171
+ "selfManaged": str(self_managed_config_file_path),
185
172
  "operation": operation_type,
186
173
  "action": result["action"],
187
174
  "details": result["details"],
188
175
  "status": "success"
189
176
  })
177
+ except ValueError as ex:
178
+ if "resolve to the same location" in str(ex):
179
+ operation_records.append({
180
+ "program": program_name,
181
+ "file_key": a_mapper["file_name"],
182
+ "defaultPath": str(config_file_default_path),
183
+ "selfManaged": str(self_managed_config_file_path),
184
+ "operation": operation_type,
185
+ "action": "already_linked",
186
+ "details": "defaultPath and selfManaged resolve to same location - already correctly configured",
187
+ "status": "success"
188
+ })
189
+ else:
190
+ raise
190
191
  except Exception as ex:
191
- console.print(f"❌ [red]Config error[/red]: {program_name} | {a_mapper['file_name']} | missing keys 'config_file_default_path ==> self_managed_config_file_path'. {ex}")
192
+ console.print(f"❌ [red]Config error[/red]: {program_name} | {a_mapper['file_name']} | {ex}")
192
193
  operation_records.append({
193
194
  "program": program_name,
194
195
  "file_key": a_mapper["file_name"],
195
- "source": str(config_file_default_path),
196
- "target": str(self_managed_config_file_path),
197
- "operation": "symlink" if not use_copy else "copy",
196
+ "defaultPath": str(config_file_default_path),
197
+ "selfManaged": str(self_managed_config_file_path),
198
+ "operation": operation_type,
198
199
  "action": "error",
199
- "details": f"Failed to create {'symlink' if not use_copy else 'copy'}: {str(ex)}",
200
+ "details": f"Failed to create {operation_type}: {str(ex)}",
200
201
  "status": f"error: {str(ex)}"
201
202
  })
202
203
 
203
204
  if program_name == "ssh" and system == "Linux": # permissions of ~/dotfiles/.ssh should be adjusted
204
205
  try:
205
206
  console.print("\n[bold]🔒 Setting secure permissions for SSH files...[/bold]")
206
- # run_shell_script("sudo chmod 600 $HOME/.ssh/*")
207
- # run_shell_script("sudo chmod 700 $HOME/.ssh")
208
-
209
- subprocess.run("chmod 700 ~/.ssh/", check=True)
210
- subprocess.run("chmod 700 ~/dotfiles/creds/.ssh/", check=True) # may require sudo
211
- subprocess.run("chmod 600 ~/dotfiles/creds/.ssh/*", check=True)
207
+ subprocess.run("chmod 700 $HOME/.ssh/", shell=True, check=True)
208
+ subprocess.run("chmod 700 $HOME/dotfiles/creds/.ssh/", shell=True, check=True)
209
+ subprocess.run("chmod 600 $HOME/dotfiles/creds/.ssh/*", shell=True, check=True)
210
+ subprocess.run("chmod 600 $HOME/.ssh/*", shell=True, check=True)
212
211
  console.print("[green]✅ SSH permissions set successfully[/green]")
213
212
  except Exception as e:
214
213
  ERROR_LIST.append(e)
@@ -224,8 +223,8 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
224
223
  table = Table(title="🔗 Symlink Operations Summary", show_header=True, header_style="bold magenta")
225
224
  table.add_column("Program", style="cyan", no_wrap=True)
226
225
  table.add_column("File Key", style="blue", no_wrap=True)
227
- table.add_column("Source", style="green")
228
- table.add_column("Target", style="yellow")
226
+ table.add_column("Default Path", style="green")
227
+ table.add_column("Self Managed", style="yellow")
229
228
  table.add_column("Operation", style="magenta", no_wrap=True)
230
229
  table.add_column("Action", style="red", no_wrap=True)
231
230
  table.add_column("Details", style="white")
@@ -237,8 +236,8 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
237
236
  table.add_row(
238
237
  record["program"],
239
238
  record["file_key"],
240
- record["source"],
241
- record["target"],
239
+ record["defaultPath"],
240
+ record["selfManaged"],
242
241
  record["operation"],
243
242
  f"[{action_style}]{record['action']}[/{action_style}]",
244
243
  record["details"],
@@ -247,6 +246,25 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
247
246
 
248
247
  console.print("\n")
249
248
  console.print(table)
249
+
250
+ # Export operation records to CSV
251
+ import csv
252
+ from datetime import datetime
253
+
254
+ csv_dir = PathExtended(CONFIG_PATH).joinpath("symlink_operations")
255
+ csv_dir.mkdir(parents=True, exist_ok=True)
256
+
257
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
258
+ csv_filename = f"symlink_operations_{timestamp}.csv"
259
+ csv_path = csv_dir.joinpath(csv_filename)
260
+
261
+ with open(csv_path, "w", newline="", encoding="utf-8") as csvfile:
262
+ fieldnames = ["program", "file_key", "defaultPath", "selfManaged", "operation", "action", "details", "status"]
263
+ writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
264
+ writer.writeheader()
265
+ writer.writerows(operation_records)
266
+
267
+ console.print(f"\n[bold green]📊 Operations exported to CSV:[/bold green] [cyan]{csv_path}[/cyan]")
250
268
 
251
269
  if len(ERROR_LIST) > 0:
252
270
  console.print(
@@ -1,33 +1,32 @@
1
1
  """devops with emojis"""
2
2
 
3
- import machineconfig.utils.installer_utils.installer as installer_entry_point
4
3
  import machineconfig.scripts.python.share_terminal as share_terminal
5
4
  import machineconfig.scripts.python.repos as repos
6
-
7
- import machineconfig.profile.create_frontend as create_frontend
5
+ from machineconfig.jobs.installer.package_groups import PACKAGE_GROUPS
8
6
  # import machineconfig.scripts.python.dotfile as dotfile_module
9
7
  import typer
10
- from typing import Literal, Annotated
8
+ from typing import Literal, Annotated, Optional, get_args
11
9
 
12
10
 
13
11
  app = typer.Typer(help="🛠️ DevOps operations", no_args_is_help=True)
14
- app.command(name="install", help="📦 Install essential packages")(installer_entry_point.main)
15
- app.add_typer(repos.app, name="repos", help="📁 Manage git repositories")
12
+ @app.command(no_args_is_help=True)
13
+ def install( which: Optional[str] = typer.Option(None, "--which", "-w", help="Comma-separated list of program names to install."),
14
+ group: Optional[PACKAGE_GROUPS] = typer.Option(None, "--group", "-g", help=f"Group name (one of {list(get_args(PACKAGE_GROUPS))})"),
15
+ interactive: bool = typer.Option(False, "--interactive", "-ia", help="Interactive selection of programs to install."),
16
+ ) -> None:
17
+ """📦 Install essential packages"""
18
+ import machineconfig.utils.installer_utils.installer as installer_entry_point
19
+ installer_entry_point.main(which=which, group=group, interactive=interactive)
16
20
 
17
21
 
22
+ app.add_typer(repos.app, name="repos", help="📁 Manage git repositories")
18
23
  config_apps = typer.Typer(help="⚙️ Configuration subcommands", no_args_is_help=True)
19
24
  app.add_typer(config_apps, name="config")
20
-
21
-
22
-
23
25
  app_data = typer.Typer(help="💾 Data subcommands", no_args_is_help=True)
24
26
  app.add_typer(app_data, name="data")
25
-
26
27
  nw_apps = typer.Typer(help="🔐 Network subcommands", no_args_is_help=True)
27
28
  nw_apps.command(name="share-terminal", help="📡 Share terminal via web browser")(share_terminal.main)
28
29
  app.add_typer(nw_apps, name="network")
29
-
30
-
31
30
  self_app = typer.Typer(help="🔄 SELF operations subcommands", no_args_is_help=True)
32
31
  app.add_typer(self_app, name="self")
33
32
 
@@ -46,17 +45,35 @@ def interactive():
46
45
  def status():
47
46
  """📊 STATUS of machine, shell profile, apps, symlinks, dotfiles, etc."""
48
47
  pass
48
+ @self_app.command()
49
+ def clone():
50
+ """📋 CLONE machienconfig locally for faster execution and nightly updates. """
51
+ import platform
52
+ from machineconfig.utils.code import run_shell_script
53
+ if platform.system() == "Windows":
54
+ from machineconfig.setup_windows import REPOS
55
+ else:
56
+ from machineconfig.setup_linux import REPOS
57
+ run_shell_script(REPOS.read_text(encoding="utf-8"))
49
58
 
50
59
 
51
60
  @config_apps.command(no_args_is_help=True)
52
- def private():
61
+ def private(method: Literal["symlink", "copy"] = typer.Option(..., "--method", "-m", help="Method to use for linking files"),
62
+ on_conflict: Literal["throwError", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"] = typer.Option("throwError", "--on-conflict", "-o", help="Action to take on conflict"),
63
+ which: Optional[str] = typer.Option(None, "--which", "-w", help="Specific items to process"),
64
+ interactive: bool = typer.Option(False, "--interactive", "-ia", help="Run in interactive mode")):
53
65
  """🔗 Manage private configuration files."""
54
- create_frontend.main_private_from_parser()
66
+ import machineconfig.profile.create_frontend as create_frontend
67
+ create_frontend.main_private_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
55
68
 
56
69
  @config_apps.command(no_args_is_help=True)
57
- def public():
70
+ def public(method: Literal["symlink", "copy"] = typer.Option(..., "--method", "-m", help="Method to use for setting up the config file."),
71
+ on_conflict: Literal["throwError", "overwriteDefaultPath", "backupDefaultPath"] = typer.Option("throwError", "--on-conflict", "-o", help="Action to take on conflict"),
72
+ which: Optional[str] = typer.Option(None, "--which", "-w", help="Specific items to process"),
73
+ interactive: bool = typer.Option(False, "--interactive", "-ia", help="Run in interactive mode")):
58
74
  """🔗 Manage public configuration files."""
59
- create_frontend.main_public_from_parser()
75
+ import machineconfig.profile.create_frontend as create_frontend
76
+ create_frontend.main_public_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
60
77
 
61
78
  # @config_apps.command(no_args_is_help=True)
62
79
  # def dotfile():
@@ -19,8 +19,8 @@ for better user experience with checkbox selections.
19
19
 
20
20
  import sys
21
21
  from pathlib import Path
22
- from platform import system
23
22
  from typing import cast
23
+ import platform
24
24
 
25
25
  import questionary
26
26
  from questionary import Choice
@@ -80,14 +80,14 @@ def get_installation_choices() -> list[str]:
80
80
  Choice(value="retrieve_data", title="💾 Retrieve Data - Backup restoration", checked=False),
81
81
  ]
82
82
  # Add Windows-specific options
83
- if system() == "Windows":
83
+ if platform.system() == "Windows":
84
84
  choices.append(Choice(value="install_windows_desktop", title="💻 Install Windows Desktop Apps - Brave, Windows Terminal, PowerShell, VSCode (Windows only)", checked=False))
85
85
  selected = questionary.checkbox("Select the installation options you want to execute:", choices=choices, show_description=True).ask()
86
86
  return selected or []
87
87
 
88
88
 
89
89
  def execute_installations(selected_options: list[str]) -> None:
90
- if system() == "Windows":
90
+ if platform.system() == "Windows":
91
91
  from machineconfig import setup_windows as module
92
92
  script_path = Path(module.__file__).parent / "ve.ps1"
93
93
  run_shell_script(script_path.read_text(encoding="utf-8"))
@@ -109,26 +109,24 @@ def execute_installations(selected_options: list[str]) -> None:
109
109
  run_shell_script(". $HOME/.bashrc")
110
110
 
111
111
  if "upgrade_system" in selected_options:
112
- if system() == "Windows":
112
+ if platform.system() == "Windows":
113
113
  console.print("❌ System upgrade is not applicable on Windows via this script.", style="bold red")
114
- elif system() == "Linux":
114
+ elif platform.system() == "Linux":
115
115
  console.print(Panel("🔄 [bold magenta]SYSTEM UPDATE[/bold magenta]\n[italic]Package management[/italic]", border_style="magenta"))
116
116
  run_shell_script("sudo nala upgrade -y")
117
117
  else:
118
- console.print(f"❌ System upgrade not supported on {system()}.", style="bold red")
118
+ console.print(f"❌ System upgrade not supported on {platform.system()}.", style="bold red")
119
119
  if "install_repos" in selected_options:
120
120
  console.print(Panel("🐍 [bold green]PYTHON ENVIRONMENT[/bold green]\n[italic]Virtual environment setup[/italic]", border_style="green"))
121
- if system() == "Windows":
122
- from machineconfig import setup_windows as module
123
- script_path = Path(module.__file__).parent / "repos.ps1"
121
+ if platform.system() == "Windows":
122
+ from machineconfig.setup_windows import REPOS
124
123
  else:
125
- from machineconfig import setup_linux as module
126
- script_path = Path(module.__file__).parent / "repos.sh"
127
- run_shell_script(script_path.read_text(encoding="utf-8"))
124
+ from machineconfig.setup_linux import REPOS
125
+ run_shell_script(REPOS.read_text(encoding="utf-8"))
128
126
 
129
127
  if "install_ssh_server" in selected_options:
130
128
  console.print(Panel("🔒 [bold red]SSH SERVER[/bold red]\n[italic]Remote access setup[/italic]", border_style="red"))
131
- if system() == "Windows":
129
+ if platform.system() == "Windows":
132
130
  powershell_script = """Write-Host "🔧 Installing and configuring SSH server..."
133
131
  Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
134
132
  Start-Service sshd
@@ -142,7 +140,7 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
142
140
  console.print("🔧 Configuring shell profile", style="bold cyan")
143
141
  try:
144
142
  from machineconfig.profile.shell import create_default_shell_profile
145
- create_default_shell_profile()
143
+ create_default_shell_profile(method="copy")
146
144
  console.print("✅ Shell profile configured successfully", style="bold green")
147
145
  except Exception as e:
148
146
  console.print(f"❌ Error configuring shell profile: {e}", style="bold red")
@@ -35,7 +35,7 @@ CloudOption = Annotated[
35
35
 
36
36
 
37
37
 
38
- @app.command()
38
+ @app.command(no_args_is_help=True)
39
39
  def push(directory: DirectoryArgument = None,
40
40
  recursive: RecursiveOption = False,
41
41
  no_sync: NoSyncOption = False,
@@ -43,7 +43,7 @@ def push(directory: DirectoryArgument = None,
43
43
  """🚀 Push changes across repositories."""
44
44
  from machineconfig.scripts.python.repos_helper import git_operations
45
45
  git_operations(directory, pull=False, commit=False, push=True, recursive=recursive, no_sync=no_sync)
46
- @app.command()
46
+ @app.command(no_args_is_help=True)
47
47
  def pull(
48
48
  directory: DirectoryArgument = None,
49
49
  recursive: RecursiveOption = False,
@@ -52,7 +52,7 @@ def pull(
52
52
  """⬇️ Pull changes across repositories."""
53
53
  from machineconfig.scripts.python.repos_helper import git_operations
54
54
  git_operations(directory, pull=True, commit=False, push=False, recursive=recursive, no_sync=no_sync)
55
- @app.command()
55
+ @app.command(no_args_is_help=True)
56
56
  def commit(
57
57
  directory: DirectoryArgument = None,
58
58
  recursive: RecursiveOption = False,
@@ -61,8 +61,8 @@ def commit(
61
61
  """💾 Commit changes across repositories."""
62
62
  from machineconfig.scripts.python.repos_helper import git_operations
63
63
  git_operations(directory, pull=False, commit=True, push=False, recursive=recursive, no_sync=no_sync)
64
- @app.command()
65
- def all(
64
+ @app.command(no_args_is_help=True)
65
+ def cleanup(
66
66
  directory: DirectoryArgument = None,
67
67
  recursive: RecursiveOption = False,
68
68
  no_sync: NoSyncOption = False,
@@ -72,7 +72,7 @@ def all(
72
72
  git_operations(directory, pull=True, commit=True, push=True, recursive=recursive, no_sync=no_sync)
73
73
 
74
74
 
75
- @sync_app.command()
75
+ @sync_app.command(no_args_is_help=True)
76
76
  def capture(
77
77
  directory: DirectoryArgument = None,
78
78
  cloud: CloudOption = None,
@@ -86,7 +86,7 @@ def capture(
86
86
  from machineconfig.utils.path_extended import PathExtended
87
87
  if cloud is not None:
88
88
  PathExtended(save_path).to_cloud(rel2home=True, cloud=cloud)
89
- @sync_app.command()
89
+ @sync_app.command(no_args_is_help=True)
90
90
  def clone(
91
91
  directory: DirectoryArgument = None,
92
92
  cloud: CloudOption = None,
@@ -97,7 +97,7 @@ def clone(
97
97
  clone_from_specs(directory, cloud, checkout_branch_flag=False, checkout_commit_flag=False)
98
98
 
99
99
 
100
- @sync_app.command(name="checkout-to-commit")
100
+ @sync_app.command(name="checkout-to-commit", no_args_is_help=True)
101
101
  def checkout_command(
102
102
  directory: DirectoryArgument = None,
103
103
  cloud: CloudOption = None,
@@ -108,7 +108,7 @@ def checkout_command(
108
108
  clone_from_specs(directory, cloud, checkout_branch_flag=False, checkout_commit_flag=True)
109
109
 
110
110
 
111
- @sync_app.command(name="checkout-to-branch")
111
+ @sync_app.command(name="checkout-to-branch", no_args_is_help=True)
112
112
  def checkout_to_branch_command(
113
113
  directory: DirectoryArgument = None,
114
114
  cloud: CloudOption = None,
@@ -119,7 +119,7 @@ def checkout_to_branch_command(
119
119
  clone_from_specs(directory, cloud, checkout_branch_flag=True, checkout_commit_flag=False)
120
120
 
121
121
 
122
- @app.command()
122
+ @app.command(no_args_is_help=True)
123
123
  def analyze(
124
124
  directory: DirectoryArgument = None,
125
125
  ) -> None: