machineconfig 5.76__tar.gz → 5.78__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 (434) hide show
  1. {machineconfig-5.76/src/machineconfig.egg-info → machineconfig-5.78}/PKG-INFO +6 -16
  2. {machineconfig-5.76 → machineconfig-5.78}/README.md +5 -15
  3. {machineconfig-5.76 → machineconfig-5.78}/pyproject.toml +2 -3
  4. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/installer_data.json +6 -6
  5. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops.py +12 -8
  6. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_nw.py +15 -2
  7. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_self.py +23 -2
  8. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/devops_add_ssh_key.py +3 -0
  9. machineconfig-5.78/src/machineconfig/scripts/python/nw/add_ssh_key.py +148 -0
  10. machineconfig-5.78/src/machineconfig/scripts/python/nw/devops_add_identity.py +82 -0
  11. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/exe/previewer.sh +6 -1
  12. machineconfig-5.78/src/machineconfig/settings/lf/linux/lfrc +631 -0
  13. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/uv.sh +1 -1
  14. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/uv.ps1 +1 -1
  15. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/installer_utils/installer_class.py +17 -3
  16. {machineconfig-5.76 → machineconfig-5.78/src/machineconfig.egg-info}/PKG-INFO +6 -16
  17. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig.egg-info/SOURCES.txt +2 -0
  18. machineconfig-5.76/src/machineconfig/settings/lf/linux/lfrc +0 -224
  19. {machineconfig-5.76 → machineconfig-5.78}/MANIFEST.in +0 -0
  20. {machineconfig-5.76 → machineconfig-5.78}/setup.cfg +0 -0
  21. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/__init__.py +0 -0
  22. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/__init__.py +0 -0
  23. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  24. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  25. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/distribute.py +0 -0
  26. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  27. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/job_params.py +0 -0
  28. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  29. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  30. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  31. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  32. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  33. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  34. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  35. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  36. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper.py +0 -0
  37. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper_restart.py +0 -0
  38. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper_with_panes.py +0 -0
  39. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_manager_helper.py +0 -0
  40. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  41. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  42. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  43. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  44. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  45. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  46. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  47. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  48. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  49. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  50. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  51. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  52. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  53. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  54. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  55. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  56. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  57. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  58. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  59. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  60. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  61. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  62. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  63. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/templates/__init__.py +0 -0
  64. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  65. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/__init__.py +0 -0
  66. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/__init__.py +0 -0
  67. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/check_installations.py +0 -0
  68. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  69. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  70. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  71. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  72. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  73. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  74. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  75. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  76. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
  77. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  78. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  79. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  80. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  81. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  82. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  83. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  84. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  85. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  86. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  87. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  88. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  89. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  90. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  91. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  92. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  93. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  94. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  95. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  96. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  97. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  98. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  99. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  100. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  101. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  102. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  103. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/python/__init__.py +0 -0
  104. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  105. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  106. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  107. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  108. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  109. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  110. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  111. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  112. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/logger.py +0 -0
  113. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/__init__.py +0 -0
  114. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/backup.toml +0 -0
  115. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
  116. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/create_helper.py +0 -0
  117. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/create_links.py +0 -0
  118. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/create_links_export.py +0 -0
  119. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/create_shell_profile.py +0 -0
  120. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/mapper.toml +0 -0
  121. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  122. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  123. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  124. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  125. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  126. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
  127. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/__init__.py +0 -0
  128. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/fzf2g +0 -0
  129. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/fzfag +0 -0
  130. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/fzffg +0 -0
  131. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/fzfg +0 -0
  132. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/fzfrga +0 -0
  133. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
  134. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
  135. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/other/share_smb +0 -0
  136. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/other/start_docker +0 -0
  137. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
  138. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/skrg +0 -0
  139. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  140. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/linux/z_ls +0 -0
  141. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/__init__.py +0 -0
  142. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/agents.py +0 -0
  143. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  144. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
  145. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
  146. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  147. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  148. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  149. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  150. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  151. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  152. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  153. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  154. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  155. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  156. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  157. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  158. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  159. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  160. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  161. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  162. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  163. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  164. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  165. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  166. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  167. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  168. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  169. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  170. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  171. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  172. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ai/vscode_tasks.py +0 -0
  173. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud.py +0 -0
  174. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud_helpers/__init__.py +0 -0
  175. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud_helpers/cloud_copy.py +0 -0
  176. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud_helpers/cloud_helpers.py +0 -0
  177. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud_helpers/cloud_mount.py +0 -0
  178. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud_helpers/cloud_sync.py +0 -0
  179. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud_helpers/helpers2.py +0 -0
  180. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/cloud_helpers/helpers5.py +0 -0
  181. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/croshell.py +0 -0
  182. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/croshell_helpers/__init__.py +0 -0
  183. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/croshell_helpers/pomodoro.py +0 -0
  184. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/croshell_helpers/scheduler.py +0 -0
  185. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/croshell_helpers/start_slidev.py +0 -0
  186. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/croshell_helpers/viewer.py +0 -0
  187. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/croshell_helpers/viewer_template.py +0 -0
  188. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/__init__.py +0 -0
  189. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_config.py +0 -0
  190. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py +0 -0
  191. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_data.py +0 -0
  192. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_repos.py +0 -0
  193. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_share_server.py +0 -0
  194. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/cli_terminal.py +0 -0
  195. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/devops_add_identity.py +0 -0
  196. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py +0 -0
  197. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/devops_status.py +0 -0
  198. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/devops_update_repos.py +0 -0
  199. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/themes/__init__.py +0 -0
  200. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/themes/choose_pwsh_theme.ps1 +0 -0
  201. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_helpers/themes/choose_wezterm_theme.py +0 -0
  202. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
  203. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/entry.py +0 -0
  204. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
  205. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
  206. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +0 -0
  207. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  208. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/ftpx.py +0 -0
  209. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helper_navigator/__init__.py +0 -0
  210. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helper_navigator/command_builder.py +0 -0
  211. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helper_navigator/command_detail.py +0 -0
  212. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helper_navigator/command_tree.py +0 -0
  213. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helper_navigator/data_models.py +0 -0
  214. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helper_navigator/main_app.py +0 -0
  215. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helper_navigator/search_bar.py +0 -0
  216. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
  217. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py +0 -0
  218. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json +0 -0
  219. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -0
  220. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_cursor_agents.py +0 -0
  221. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -0
  222. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -0
  223. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +0 -0
  224. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py +0 -0
  225. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -0
  226. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py +0 -0
  227. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/helpers4.py +0 -0
  228. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -0
  229. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/template.ps1 +0 -0
  230. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire/template.sh +0 -0
  231. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  232. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
  233. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  234. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
  235. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  236. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_repos/__init__.py +0 -0
  237. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +0 -0
  238. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
  239. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
  240. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/interactive.py +0 -0
  241. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
  242. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
  243. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/mount_nfs +0 -0
  244. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
  245. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
  246. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
  247. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
  248. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
  249. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
  250. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
  251. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
  252. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/action.py +0 -0
  253. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/clone.py +0 -0
  254. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/count_lines.py +0 -0
  255. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +0 -0
  256. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/entrypoint.py +0 -0
  257. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/record.py +0 -0
  258. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/sync.py +0 -0
  259. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/repos_helpers/update.py +0 -0
  260. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/sessions.py +0 -0
  261. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/sessions_helpers/__init__.py +0 -0
  262. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/python/sessions_helpers/sessions_multiprocess.py +0 -0
  263. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  264. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  265. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  266. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
  267. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
  268. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
  269. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -0
  270. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
  271. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
  272. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
  273. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/__init__.py +0 -0
  274. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/broot/br.sh +0 -0
  275. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  276. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/broot/conf.toml +0 -0
  277. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/glow/glow.yml +0 -0
  278. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  279. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/helix/config.toml +0 -0
  280. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/helix/languages.toml +0 -0
  281. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/keras/keras.json +0 -0
  282. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  283. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  284. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  285. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  286. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  287. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  288. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  289. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  290. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  291. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  292. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/colors +0 -0
  293. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  294. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  295. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  296. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  297. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  298. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/linux/icons +0 -0
  299. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  300. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  301. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  302. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  303. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  304. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  305. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  306. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  307. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  308. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  309. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/colors +0 -0
  310. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  311. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/icons +0 -0
  312. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  313. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  314. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  315. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  316. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  317. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  318. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  319. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/linters/.flake8 +0 -0
  320. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  321. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/linters/.pylintrc +0 -0
  322. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  323. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  324. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  325. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  326. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  327. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  328. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/mprocs/windows/other +0 -0
  329. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  330. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  331. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/procs/.procs.toml +0 -0
  332. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  333. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/rofi/config.rasi +0 -0
  334. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  335. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  336. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  337. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  338. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  339. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  340. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  341. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  342. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  343. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  344. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  345. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  346. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  347. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  348. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  349. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  350. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  351. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/streamlit/config.toml +0 -0
  352. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  353. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  354. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  355. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/tere/terecd.sh +0 -0
  356. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  357. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  358. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  359. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  360. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/yazi/theme.toml +0 -0
  361. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  362. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zed/settings.json +0 -0
  363. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  364. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  365. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/config.kdl +0 -0
  366. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  367. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  368. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  369. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  370. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  371. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  372. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/__init__.py +0 -0
  373. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/apps.sh +0 -0
  374. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  375. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  376. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  377. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  378. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  379. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  380. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  381. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  382. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/__init__.py +0 -0
  383. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/apps.ps1 +0 -0
  384. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  385. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  386. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  387. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
  388. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
  389. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  390. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  391. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  392. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  393. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/__init__.py +0 -0
  394. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/accessories.py +0 -0
  395. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/ai/__init__.py +0 -0
  396. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
  397. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  398. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  399. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/code.py +0 -0
  400. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/files/ascii_art.py +0 -0
  401. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/files/dbms.py +0 -0
  402. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/files/headers.py +0 -0
  403. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
  404. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
  405. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/files/read.py +0 -0
  406. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/installer.py +0 -0
  407. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  408. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  409. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  410. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  411. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/io.py +0 -0
  412. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/links.py +0 -0
  413. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/meta.py +0 -0
  414. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/notifications.py +0 -0
  415. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/options.py +0 -0
  416. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/path_extended.py +0 -0
  417. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/path_helper.py +0 -0
  418. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/procs.py +0 -0
  419. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/scheduler.py +0 -0
  420. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/scheduling.py +0 -0
  421. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  422. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  423. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  424. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  425. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/source_of_truth.py +0 -0
  426. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/ssh.py +0 -0
  427. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
  428. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/terminal.py +0 -0
  429. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/upgrade_packages.py +0 -0
  430. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig/utils/ve.py +0 -0
  431. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  432. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig.egg-info/entry_points.txt +0 -0
  433. {machineconfig-5.76 → machineconfig-5.78}/src/machineconfig.egg-info/requires.txt +0 -0
  434. {machineconfig-5.76 → machineconfig-5.78}/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.76
3
+ Version: 5.78
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -56,29 +56,19 @@ Requires-Dist: python-magic>=0.4.27; extra == "plot"
56
56
  # Welcome to machineconfig
57
57
 
58
58
  Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
59
- Dotfiles include, but are not limited to:
60
- * `~/.gitconfig`
61
- * `~/.ssh`
62
- * `~/.aws`
63
- * `~/.bash_profile`
64
- * `~/.bashrc`
65
- * `~/.config`
66
- * `$profile` in Windows Powershell
67
- * etc
59
+ Dotfiles are divided into private and public. Examples of private ones are, `~/.gitconfig`, `~/.ssh`, etc. Whereas public config files are ones like `lfrc`. The private dotfiles are placed @ `~/dotfiles`. The files therein are encrypted before backedup.
68
60
 
69
-
70
- Additionally, files that contain data, sensitive information that should not be pushed to a repository are contained in a directory `~/dotfiles`. The files therein are encrypted before backedup.
71
-
72
-
73
- # Windows:
61
+ # Install On Windows:
74
62
 
75
63
  ```powershell
64
+
76
65
  iex (iwr bit.ly/cfgwindows).Content
77
66
  ```
78
67
 
79
- # Linux and MacOS
68
+ # Install On Linux and MacOS
80
69
 
81
70
  ```bash
71
+
82
72
  . <(curl -sL bit.ly/cfglinux)
83
73
  ```
84
74
 
@@ -11,29 +11,19 @@
11
11
  # Welcome to machineconfig
12
12
 
13
13
  Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
14
- Dotfiles include, but are not limited to:
15
- * `~/.gitconfig`
16
- * `~/.ssh`
17
- * `~/.aws`
18
- * `~/.bash_profile`
19
- * `~/.bashrc`
20
- * `~/.config`
21
- * `$profile` in Windows Powershell
22
- * etc
14
+ Dotfiles are divided into private and public. Examples of private ones are, `~/.gitconfig`, `~/.ssh`, etc. Whereas public config files are ones like `lfrc`. The private dotfiles are placed @ `~/dotfiles`. The files therein are encrypted before backedup.
23
15
 
24
-
25
- Additionally, files that contain data, sensitive information that should not be pushed to a repository are contained in a directory `~/dotfiles`. The files therein are encrypted before backedup.
26
-
27
-
28
- # Windows:
16
+ # Install On Windows:
29
17
 
30
18
  ```powershell
19
+
31
20
  iex (iwr bit.ly/cfgwindows).Content
32
21
  ```
33
22
 
34
- # Linux and MacOS
23
+ # Install On Linux and MacOS
35
24
 
36
25
  ```bash
26
+
37
27
  . <(curl -sL bit.ly/cfglinux)
38
28
  ```
39
29
 
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "5.76"
9
+ version = "5.78"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -89,7 +89,7 @@ dev = [
89
89
  "build>=1.3.0",
90
90
  "cleanpy>=0.5.1",
91
91
  "cowsay>=6.1",
92
- "duckdb-engine>=0.17.0",
92
+ # "duckdb-engine>=0.17.0",
93
93
  "euporie>=2.8.14",
94
94
  "ipdb>=0.13.13",
95
95
  "ipykernel>=6.30.1",
@@ -99,7 +99,6 @@ dev = [
99
99
  "numpy>=2.3.3",
100
100
  "pandas>=2.3.3",
101
101
  "plotly>=6.3.0",
102
- "polars>=1.33.1",
103
102
  "pre-commit>=4.3.0",
104
103
  "pudb>=2025.1",
105
104
  "pylint>=3.3.8",
@@ -1469,14 +1469,14 @@
1469
1469
  "doc": "🌐 cli to get info of ips",
1470
1470
  "fileNamePattern": {
1471
1471
  "amd64": {
1472
- "linux": "ipinfo_{version}_linux_amd64.tar.gz",
1473
- "windows": "ipinfo_{version}_windows_amd64.zip",
1474
- "macos": "ipinfo_{version}_darwin_amd64.tar.gz"
1472
+ "linux": "{version}_linux_amd64.tar.gz",
1473
+ "windows": "{version}_windows_amd64.zip",
1474
+ "macos": "{version}_darwin_amd64.tar.gz"
1475
1475
  },
1476
1476
  "arm64": {
1477
- "linux": "ipinfo_{version}_linux_arm64.tar.gz",
1478
- "windows": "ipinfo_{version}_windows_arm64.zip",
1479
- "macos": "ipinfo_{version}_darwin_arm64.tar.gz"
1477
+ "linux": "{version}_linux_arm64.tar.gz",
1478
+ "windows": "{version}_windows_arm64.zip",
1479
+ "macos": "{version}_darwin_arm64.tar.gz"
1480
1480
  }
1481
1481
  }
1482
1482
  },
@@ -22,16 +22,20 @@ def get_app():
22
22
  _ = install
23
23
  app.command("install", no_args_is_help=True, help="🛠️ [i] Install essential packages")(install)
24
24
  app.command("i", no_args_is_help=True, help="Install essential packages", hidden=True)(install)
25
- app.add_typer(cli_repos.get_app(), name="repos")
26
- app.add_typer(cli_repos.get_app(), name="r", hidden=True)
27
- app.add_typer(cli_config.get_app(), name="config")
28
- app.add_typer(cli_config.get_app(), name="c", hidden=True)
25
+ app_repos = cli_repos.get_app()
26
+ app.add_typer(app_repos, name="repos")
27
+ app.add_typer(app_repos, name="r", hidden=True)
28
+ app_config = cli_config.get_app()
29
+ app.add_typer(app_config, name="config")
30
+ app.add_typer(app_config, name="c", hidden=True)
29
31
  app.add_typer(cli_data.app_data, name="data")
30
32
  app.add_typer(cli_data.app_data, name="d", hidden=True)
31
- app.add_typer(cli_self.get_app(), name="self")
32
- app.add_typer(cli_self.get_app(), name="s", hidden=True)
33
- app.add_typer(cli_network.get_app(), name="network")
34
- app.add_typer(cli_network.get_app(), name="n", hidden=True)
33
+ app_self = cli_self.get_app()
34
+ app.add_typer(app_self, name="self")
35
+ app.add_typer(app_self, name="s", hidden=True)
36
+ app_nw = cli_network.get_app()
37
+ app.add_typer(app_nw, name="network")
38
+ app.add_typer(app_nw, name="n", hidden=True)
35
39
  return app
36
40
 
37
41
  def main():
@@ -31,6 +31,17 @@ def add_ssh_identity():
31
31
  import machineconfig.scripts.python.devops_helpers.devops_add_identity as helper
32
32
  helper.main()
33
33
 
34
+
35
+ def show_address():
36
+ import socket
37
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
38
+ s.connect(('8.8.8.8',80))
39
+ local_ip_v4 = s.getsockname()[0]
40
+ s.close()
41
+ print(f"This computer is @ {local_ip_v4}")
42
+
43
+
44
+
34
45
  def get_app():
35
46
  nw_apps = typer.Typer(help="🔐 [n] Network subcommands", no_args_is_help=True)
36
47
  nw_apps.command(name="share-terminal", help="📡 [t] Share terminal via web browser")(cli_terminal.main)
@@ -39,8 +50,10 @@ def get_app():
39
50
  nw_apps.command(name="s", help="Start local/global server to share files/folders via web browser", hidden=True, no_args_is_help=True)(cli_share_server.main)
40
51
  nw_apps.command(name="install-ssh-server", help="📡 [i] Install SSH server")(install_ssh_server)
41
52
  nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
42
- nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine")(add_ssh_key)
43
- nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True)(add_ssh_key)
53
+ nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
54
+ nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True, no_args_is_help=True)(add_ssh_key)
44
55
  nw_apps.command(name="add-ssh-identity", help="🗝️ [a] Add SSH identity (private key) to this machine")(add_ssh_identity)
45
56
  nw_apps.command(name="a", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
57
+ nw_apps.command(name="show-address", help="[A] Show this computer addresses on network")(show_address)
58
+ nw_apps.command(name="a", help="Show this computer addresses on network", hidden=True)(show_address)
46
59
  return nw_apps
@@ -53,11 +53,30 @@ def run_python(ip: str = typer.Argument(..., help="Python command to run in the
53
53
  import subprocess
54
54
  import sys
55
55
  subprocess.run([sys.executable, ip], cwd=machineconfig.__path__[0])
56
+ def readme():
57
+ from rich.console import Console
58
+ from rich.markdown import Markdown
59
+ import requests
60
+
61
+ # URL of the raw README.md file
62
+ url_readme = "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/refs/heads/main/README.md"
63
+
64
+ # Fetch the content
65
+ response = requests.get(url_readme)
66
+ response.raise_for_status() # Raise an error for bad responses
67
+
68
+ # Parse markdown
69
+ md = Markdown(response.text)
70
+
71
+ # Render in terminal
72
+ console = Console()
73
+ console.print(md)
74
+
56
75
 
57
76
  def get_app():
58
77
  cli_app = typer.Typer(help="🔄 [s] self operations subcommands", no_args_is_help=True)
59
- cli_app.command("update", no_args_is_help=False, help="🔄 [u] UPDATE essential repos")(update)
60
- cli_app.command("u", no_args_is_help=False, help="UPDATE essential repos", hidden=True)(update)
78
+ cli_app.command("update", no_args_is_help=False, help="🔄 [u] UPDATE machineconfig")(update)
79
+ cli_app.command("u", no_args_is_help=False, hidden=True)(update)
61
80
  cli_app.command("interactive", no_args_is_help=False, help="🤖 [i] INTERACTIVE configuration of machine.")(interactive)
62
81
  cli_app.command("i", no_args_is_help=False, help="INTERACTIVE configuration of machine.", hidden=True)(interactive)
63
82
  cli_app.command("status", no_args_is_help=False, help="📊 [s] STATUS of machine, shell profile, apps, symlinks, dotfiles, etc.")(status)
@@ -68,4 +87,6 @@ def get_app():
68
87
  cli_app.command("n", no_args_is_help=False, help="NAVIGATE command structure with TUI", hidden=True)(navigate)
69
88
  cli_app.command("python", no_args_is_help=False, help="🐍 [c] python command/file in the machineconfig environment")(run_python)
70
89
  cli_app.command("c", no_args_is_help=False, help="RUN python command/file in the machineconfig environment", hidden=True)(run_python)
90
+ cli_app.command("readme", no_args_is_help=False, help="📚 [r] render readme markdown in terminal.")(readme)
91
+ cli_app.command("r", no_args_is_help=False, hidden=True)(readme)
71
92
  return cli_app
@@ -86,6 +86,7 @@ def main(pub_path: Optional[str] = typer.Argument(None, help="Path to the public
86
86
 
87
87
  if pub_path:
88
88
  key_path = PathExtended(pub_path).expanduser().absolute()
89
+ key_path.parent.mkdir(parents=True, exist_ok=True)
89
90
  if not key_path.exists():
90
91
  console.print(Panel(f"❌ ERROR: Provided key path does not exist\nPath: {key_path}", title="[bold red]Error[/bold red]"))
91
92
  raise FileNotFoundError(f"Provided key path does not exist: {key_path}")
@@ -111,6 +112,7 @@ def main(pub_path: Optional[str] = typer.Argument(None, help="Path to the public
111
112
  console.print(Panel("📋 Please provide a filename and paste the public key content", title="[bold blue]Input Required[/bold blue]", border_style="blue"))
112
113
  key_filename = input("📝 File name (default: my_pasted_key.pub): ") or "my_pasted_key.pub"
113
114
  key_path = PathExtended.home().joinpath(f".ssh/{key_filename}")
115
+ key_path.parent.mkdir(parents=True, exist_ok=True)
114
116
  key_path.write_text(input("🔑 Paste the public key here: "), encoding="utf-8")
115
117
  console.print(Panel(f"💾 Key saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
116
118
  program = get_add_ssh_key_script(key_path)
@@ -127,6 +129,7 @@ def main(pub_path: Optional[str] = typer.Argument(None, help="Path to the public
127
129
  return
128
130
  console.print(Panel(f"✅ Found {len(keys)} public key(s) for user: {from_github}", title="[bold green]Success[/bold green]", border_style="green"))
129
131
  key_path = PathExtended.home().joinpath(f".ssh/{from_github}_github_keys.pub")
132
+ key_path.parent.mkdir(parents=True, exist_ok=True)
130
133
  key_path.write_text("\n".join([key["key"] for key in keys]), encoding="utf-8")
131
134
  console.print(Panel(f"💾 Keys saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
132
135
  program = get_add_ssh_key_script(key_path)
@@ -0,0 +1,148 @@
1
+ """SSH"""
2
+
3
+ from platform import system
4
+ from machineconfig.utils.source_of_truth import LIBRARY_ROOT
5
+ from machineconfig.utils.path_extended import PathExtended
6
+ from rich.console import Console
7
+ from rich.panel import Panel
8
+ from rich import box # Import box
9
+ from typing import Optional
10
+ import typer
11
+
12
+
13
+ console = Console()
14
+
15
+
16
+ def get_add_ssh_key_script(path_to_key: PathExtended):
17
+ console.print(Panel("🔑 SSH KEY CONFIGURATION", title="[bold blue]SSH Setup[/bold blue]"))
18
+ if system() == "Linux" or system() == "Darwin":
19
+ authorized_keys = PathExtended.home().joinpath(".ssh/authorized_keys")
20
+ console.print(Panel(f"🐧 Linux SSH configuration\n📄 Authorized keys file: {authorized_keys}", title="[bold blue]System Info[/bold blue]"))
21
+ elif system() == "Windows":
22
+ authorized_keys = PathExtended("C:/ProgramData/ssh/administrators_authorized_keys")
23
+ console.print(Panel(f"🪟 Windows SSH configuration\n📄 Authorized keys file: {authorized_keys}", title="[bold blue]System Info[/bold blue]"))
24
+ else:
25
+ console.print(Panel("❌ ERROR: Unsupported operating system\nOnly Linux and Windows are supported", title="[bold red]Error[/bold red]"))
26
+ raise NotImplementedError
27
+
28
+ if authorized_keys.exists():
29
+ split = "\n"
30
+ keys_text = authorized_keys.read_text(encoding="utf-8").split(split)
31
+ key_count = len([k for k in keys_text if k.strip()])
32
+ console.print(Panel(f"🔍 Current SSH authorization status\n✅ Found {key_count} authorized key(s)", title="[bold blue]Status[/bold blue]"))
33
+ if path_to_key.read_text(encoding="utf-8") in authorized_keys.read_text(encoding="utf-8"):
34
+ console.print(Panel(f"⚠️ Key already authorized\nKey: {path_to_key.name}\nStatus: Already present in authorized_keys file\nNo action required", title="[bold yellow]Warning[/bold yellow]"))
35
+ program = ""
36
+ else:
37
+ console.print(Panel(f"➕ Adding new SSH key to authorized keys\n🔑 Key file: {path_to_key.name}", title="[bold blue]Action[/bold blue]"))
38
+ if system() == "Linux":
39
+ program = f"cat {path_to_key} >> ~/.ssh/authorized_keys"
40
+ elif system() == "Windows":
41
+ program_path = LIBRARY_ROOT.joinpath("setup_windows/add-sshkey.ps1")
42
+ program = program_path.expanduser().read_text(encoding="utf-8")
43
+ place_holder = r'$sshfile = "$env:USERPROFILE\.ssh\pubkey.pub"'
44
+ assert place_holder in program, f"This section performs string manipulation on the script {program_path} to add the key to the authorized_keys file. The script has changed and the string {place_holder} is not found."
45
+ program = program.replace(place_holder, f'$sshfile = "{path_to_key}"')
46
+ console.print(Panel("🔧 Configured PowerShell script for Windows\n📝 Replaced placeholder with actual key path", title="[bold blue]Configuration[/bold blue]"))
47
+ else:
48
+ raise NotImplementedError
49
+ else:
50
+ console.print(Panel(f"📝 Creating new authorized_keys file\n🔑 Using key: {path_to_key.name}", title="[bold blue]Action[/bold blue]"))
51
+ if system() == "Linux":
52
+ program = f"cat {path_to_key} > ~/.ssh/authorized_keys"
53
+ else:
54
+ program_path = LIBRARY_ROOT.joinpath("setup_windows/openssh-server_add-sshkey.ps1")
55
+ program = PathExtended(program_path).expanduser().read_text(encoding="utf-8").replace('$sshfile=""', f'$sshfile="{path_to_key}"')
56
+ console.print(Panel("🔧 Configured PowerShell script for Windows\n📝 Set key path in script", title="[bold blue]Configuration[/bold blue]"))
57
+
58
+ if system() == "Linux" or system() == "Darwin":
59
+ program += """
60
+ sudo chmod 700 ~/.ssh
61
+ sudo chmod 644 ~/.ssh/authorized_keys
62
+ sudo chmod 644 ~/.ssh/*.pub
63
+ sudo service ssh --full-restart
64
+ # from superuser.com/questions/215504/permissions-on-private-key-in-ssh-folder
65
+ """
66
+ return program
67
+
68
+
69
+
70
+ """
71
+ # Common pitfalls:
72
+ # 🚫 Wrong line endings (LF/CRLF) in config files
73
+ # 🌐 Network port conflicts (try 2222 -> 2223) between WSL and Windows
74
+ # sudo service ssh restart
75
+ # sudo service ssh status
76
+ # sudo nano /etc/ssh/sshd_config
77
+ """
78
+
79
+
80
+ def main(pub_path: Optional[str] = typer.Argument(None, help="Path to the public key file"),
81
+ pub_choose: bool = typer.Option(False, "--choose", "-c", help="Choose from available public keys in ~/.ssh"),
82
+ pub_val: bool = typer.Option(False, "--paste", "-p", help="Paste the public key content manually"),
83
+ from_github: Optional[str] = typer.Option(None, "--from-github", "-g", help="Fetch public keys from a GitHub username")
84
+ ) -> None:
85
+ if pub_path:
86
+ key_path = PathExtended(pub_path).expanduser().absolute()
87
+ if not key_path.exists():
88
+ console.print(Panel(f"❌ ERROR: Provided key path does not exist\nPath: {key_path}", title="[bold red]Error[/bold red]"))
89
+ raise FileNotFoundError(f"Provided key path does not exist: {key_path}")
90
+ console.print(Panel(f"📄 Using provided public key file: {key_path}", title="[bold blue]Info[/bold blue]"))
91
+ program = get_add_ssh_key_script(key_path)
92
+ from machineconfig.utils.code import run_shell_script
93
+ run_shell_script(script=program)
94
+ console.print(Panel("✅ SSH KEY AUTHORIZATION COMPLETED", box=box.DOUBLE_EDGE, title_align="left"))
95
+ return
96
+ elif pub_choose:
97
+ console.print(Panel("🔐 SSH PUBLIC KEY AUTHORIZATION TOOL", box=box.DOUBLE_EDGE, title_align="left"))
98
+ console.print(Panel("🔍 Searching for public keys...", title="[bold blue]SSH Setup[/bold blue]", border_style="blue"))
99
+ pub_keys = PathExtended.home().joinpath(".ssh").search("*.pub")
100
+ if pub_keys:
101
+ console.print(Panel(f"✅ Found {len(pub_keys)} public key(s)", title="[bold green]Status[/bold green]", border_style="green"))
102
+ else:
103
+ console.print(Panel("⚠️ No public keys found", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
104
+ return
105
+ console.print(Panel(f"🔄 Processing all {len(pub_keys)} public keys...", title="[bold blue]Processing[/bold blue]", border_style="blue"))
106
+ program = "\n\n\n".join([get_add_ssh_key_script(key) for key in pub_keys])
107
+
108
+ elif pub_val:
109
+ console.print(Panel("📋 Please provide a filename and paste the public key content", title="[bold blue]Input Required[/bold blue]", border_style="blue"))
110
+ key_filename = input("📝 File name (default: my_pasted_key.pub): ") or "my_pasted_key.pub"
111
+ key_path = PathExtended.home().joinpath(f".ssh/{key_filename}")
112
+ key_path.write_text(input("🔑 Paste the public key here: "), encoding="utf-8")
113
+ console.print(Panel(f"💾 Key saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
114
+ program = get_add_ssh_key_script(key_path)
115
+ elif from_github:
116
+ console.print(Panel(f"🌐 Fetching public keys from GitHub user: {from_github}", title="[bold blue]GitHub Fetch[/bold blue]", border_style="blue"))
117
+ import requests
118
+ # $pubkey_url = 'https://github.com/thisismygitrepo.keys' # $pubkey_string = (Invoke-WebRequest $pubkey_url).Content
119
+ response = requests.get(f"https://api.github.com/users/{from_github}/keys")
120
+ if response.status_code != 200:
121
+ console.print(Panel(f"❌ ERROR: Failed to fetch keys from GitHub user {from_github}\nStatus Code: {response.status_code}", title="[bold red]Error[/bold red]", border_style="red"))
122
+ raise RuntimeError(f"Failed to fetch keys from GitHub user {from_github}: Status Code {response.status_code}")
123
+ keys = response.json()
124
+ if not keys:
125
+ console.print(Panel(f"⚠️ No public keys found for GitHub user: {from_github}", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
126
+ return
127
+ console.print(Panel(f"✅ Found {len(keys)} public key(s) for user: {from_github}", title="[bold green]Success[/bold green]", border_style="green"))
128
+ key_path = PathExtended.home().joinpath(f".ssh/{from_github}_github_keys.pub")
129
+ key_path.write_text("\n".join([key["key"] for key in keys]), encoding="utf-8")
130
+ console.print(Panel(f"💾 Keys saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
131
+ program = get_add_ssh_key_script(key_path)
132
+ else:
133
+ console.print(Panel("❌ ERROR: No method provided to add SSH key\nUse --help for options", title="[bold red]Error[/bold red]", border_style="red"))
134
+ raise ValueError("No method provided to add SSH key. Use --help for options.")
135
+ console.print(Panel("🚀 SSH KEY AUTHORIZATION READY\nRun the generated script to apply changes", box=box.DOUBLE_EDGE, title_align="left"))
136
+ from machineconfig.utils.code import run_shell_script
137
+ run_shell_script(script=program)
138
+ import socket
139
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
140
+ s.connect(('8.8.8.8',80))
141
+ local_ip_v4 = s.getsockname()[0]
142
+ s.close()
143
+ print(f"This computer is @ {local_ip_v4}")
144
+ console.print(Panel("✅ SSH KEY AUTHORIZATION COMPLETED", box=box.DOUBLE_EDGE, title_align="left"))
145
+
146
+
147
+ if __name__ == "__main__":
148
+ pass
@@ -0,0 +1,82 @@
1
+ """ID"""
2
+
3
+ # from platform import system
4
+ from machineconfig.utils.path_extended import PathExtended
5
+ from machineconfig.utils.options import choose_from_options
6
+ from rich.panel import Panel
7
+ from rich.text import Text
8
+
9
+ BOX_WIDTH = 150 # width for box drawing
10
+
11
+
12
+ def main() -> None:
13
+ title = "🔑 SSH IDENTITY MANAGEMENT"
14
+ print(Panel(Text(title, justify="center"), expand=False))
15
+ print(Panel("🔍 Searching for existing SSH keys...", expand=False))
16
+ private_keys = [x.with_name(x.stem) for x in PathExtended.home().joinpath(".ssh").search("*.pub")]
17
+ private_keys = [x for x in private_keys if x.exists()]
18
+ if private_keys:
19
+ print(Panel(f"✅ Found {len(private_keys)} SSH private key(s)", expand=False))
20
+ else:
21
+ print(Panel("⚠️ No SSH private keys found", expand=False))
22
+
23
+ choice = choose_from_options(msg="Path to private key to be used when ssh'ing: ", options=[str(x) for x in private_keys] + ["I have the path to the key file", "I want to paste the key itself"], multi=False)
24
+
25
+ if choice == "I have the path to the key file":
26
+ print(Panel("📄 Please enter the path to your private key file", expand=False))
27
+ path_to_key = PathExtended(input("📋 Input path here: ")).expanduser().absolute()
28
+ print(Panel(f"📂 Using key from custom path: {path_to_key}", expand=False))
29
+
30
+ elif choice == "I want to paste the key itself":
31
+ print(Panel("📋 Please provide a filename and paste the private key content", expand=False))
32
+ key_filename = input("📝 File name (default: my_pasted_key): ") or "my_pasted_key"
33
+ path_to_key = PathExtended.home().joinpath(f".ssh/{key_filename}")
34
+ path_to_key.parent.mkdir(parents=True, exist_ok=True)
35
+ path_to_key.write_text(input("🔑 Paste the private key here: "), encoding="utf-8")
36
+ print(Panel(f"💾 Key saved to: {path_to_key}", expand=False))
37
+
38
+ else:
39
+ path_to_key = PathExtended(choice)
40
+ print(Panel(f"🔑 Using selected key: {path_to_key.name}", expand=False))
41
+
42
+ txt = f"IdentityFile {path_to_key.collapseuser().as_posix()}" # adds this id for all connections, no host specified.
43
+ config_path = PathExtended.home().joinpath(".ssh/config")
44
+
45
+ print(Panel("📝 Updating SSH configuration...", expand=False))
46
+
47
+ # Inline the previous modify_text behavior (now deprecated):
48
+ # - If file doesn't exist, seed content with txt_search
49
+ # - Otherwise, replace a matching line or append if not found
50
+ if config_path.exists():
51
+ current = config_path.read_text(encoding="utf-8")
52
+ print(Panel("✏️ Updated existing SSH config file", expand=False))
53
+ else:
54
+ current = txt
55
+ print(Panel("📄 Created new SSH config file", expand=False))
56
+ lines = current.split("\n")
57
+ found = False
58
+ for i, line in enumerate(lines):
59
+ if txt in line:
60
+ lines[i] = txt
61
+ found = True
62
+ if not found:
63
+ lines.insert(0, txt)
64
+ new_content = "\n".join(lines)
65
+ config_path.write_text(new_content, encoding="utf-8")
66
+
67
+ panel_complete = Panel(Text("✅ SSH IDENTITY CONFIGURATION COMPLETE\nIdentity added to SSH config file\nConsider reloading the SSH config to apply changes", justify="center"), expand=False, border_style="green")
68
+ program = f"echo '{panel_complete}'"
69
+
70
+ success_message = f"🎉 CONFIGURATION SUCCESSFUL\nIdentity added: {path_to_key.name}\nConfig file: {config_path}"
71
+ print(Panel(Text(success_message, justify="center"), expand=False, border_style="green"))
72
+
73
+ import subprocess
74
+
75
+ # run program
76
+ subprocess.run(program, shell=True, check=True, text=True)
77
+ print(Panel("🔐 Identity added to SSH agent", expand=False, border_style="green"))
78
+ return None
79
+
80
+
81
+ if __name__ == "__main__":
82
+ pass
@@ -2,7 +2,8 @@
2
2
  # 🔍 File Preview Script for LF File Manager
3
3
  # Uses:
4
4
  # 🖼️ chafa, viu - Image preview
5
- # 📝 pistol - General file preview
5
+ # 📝 bat - Syntax-highlighted text/code preview
6
+ # 📄 pistol - General file preview
6
7
 
7
8
  file=$1
8
9
  width="$2"
@@ -30,6 +31,10 @@ case "$file" in
30
31
  fi
31
32
  exit 0
32
33
  ;;
34
+ # 📝 Text/Code Files - Use bat for syntax highlighting
35
+ *.py|*.json|*.js|*.ts|*.html|*.css|*.scss|*.less|*.xml|*.yml|*.yaml|*.toml|*.ini|*.cfg|*.conf|*.sh|*.bash|*.zsh|*.fish|*.ps1|*.rs|*.go|*.java|*.cpp|*.c|*.h|*.hpp|*.cs|*.php|*.rb|*.pl|*.pm|*.lua|*.vim|*.sql|*.md|*.txt|*.log|*.csv|*.tsv)
36
+ bat --color=always --style=plain --paging=never "$file"
37
+ ;;
33
38
  *)
34
39
  # 📄 Default file preview
35
40
  pistol "$file"