machineconfig 5.13__tar.gz → 5.15__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 (422) hide show
  1. {machineconfig-5.13/src/machineconfig.egg-info → machineconfig-5.15}/PKG-INFO +1 -1
  2. {machineconfig-5.13 → machineconfig-5.15}/pyproject.toml +9 -1
  3. machineconfig-5.15/src/machineconfig/scripts/python/count_lines_frontend.py +16 -0
  4. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/croshell.py +20 -67
  5. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_jobs.py +2 -2
  6. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/interactive.py +26 -42
  7. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/share_terminal.py +2 -2
  8. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +1 -0
  9. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/code.py +1 -1
  10. machineconfig-5.15/src/machineconfig/utils/files/ascii_art.py +118 -0
  11. machineconfig-5.15/src/machineconfig/utils/files/headers.py +71 -0
  12. machineconfig-5.15/src/machineconfig/utils/files/read.py +103 -0
  13. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/installer_utils/installer.py +2 -2
  14. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/installer_utils/installer_abc.py +7 -0
  15. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/options.py +0 -25
  16. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/terminal.py +1 -1
  17. {machineconfig-5.13 → machineconfig-5.15/src/machineconfig.egg-info}/PKG-INFO +1 -1
  18. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig.egg-info/SOURCES.txt +3 -0
  19. machineconfig-5.13/src/machineconfig/scripts/python/count_lines_frontend.py +0 -16
  20. {machineconfig-5.13 → machineconfig-5.15}/MANIFEST.in +0 -0
  21. {machineconfig-5.13 → machineconfig-5.15}/README.md +0 -0
  22. {machineconfig-5.13 → machineconfig-5.15}/setup.cfg +0 -0
  23. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/__init__.py +0 -0
  24. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/__init__.py +0 -0
  25. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  26. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  27. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/distribute.py +0 -0
  28. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  29. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/job_params.py +0 -0
  30. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  31. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  32. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  33. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  34. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  35. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  36. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  37. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  38. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/ffile.py +0 -0
  39. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  40. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  41. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  42. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  43. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  44. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  45. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  46. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  47. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  48. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  49. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  50. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  51. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  52. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  53. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  54. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  55. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  56. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  57. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  58. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  59. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  60. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  61. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  62. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/templates/__init__.py +0 -0
  63. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  64. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/__init__.py +0 -0
  65. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/__init__.py +0 -0
  66. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  67. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  68. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  69. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  70. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  71. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  72. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  73. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  74. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  75. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  76. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  77. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  78. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  79. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  80. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  81. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  82. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  83. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  84. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  85. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  86. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  87. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  88. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  89. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  90. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  91. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  92. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  93. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  94. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  95. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  96. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  97. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  98. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  99. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  100. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  101. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/python/__init__.py +0 -0
  102. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/python/check_installations.py +0 -0
  103. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  104. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  105. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  106. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  107. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  108. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  109. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  110. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  111. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  112. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  113. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/logger.py +0 -0
  114. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/__init__.py +0 -0
  115. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/create.py +0 -0
  116. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  117. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  118. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  119. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  120. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  121. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/profile/shell.py +0 -0
  122. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/__init__.py +0 -0
  123. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/cloud/init.sh +0 -0
  124. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/agents +0 -0
  125. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  126. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  127. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  128. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  129. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  130. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/croshell +0 -0
  131. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/devops +0 -0
  132. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/fire +0 -0
  133. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/ftpx +0 -0
  134. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/fzf2g +0 -0
  135. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/fzfag +0 -0
  136. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/fzffg +0 -0
  137. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/fzfg +0 -0
  138. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/fzfrga +0 -0
  139. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/gh_models +0 -0
  140. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/initai +0 -0
  141. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/kill_process +0 -0
  142. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/mount_drive +0 -0
  143. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  144. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  145. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/mount_smb +0 -0
  146. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/scheduler +0 -0
  147. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/sessions +0 -0
  148. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  149. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/share_nfs +0 -0
  150. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/share_smb +0 -0
  151. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/skrg +0 -0
  152. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/start_docker +0 -0
  153. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/start_slidev +0 -0
  154. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/start_terminals +0 -0
  155. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/switch_ip +0 -0
  156. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  157. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  158. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/linux/z_ls +0 -0
  159. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/__init__.py +0 -0
  160. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/agents.py +0 -0
  161. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  162. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  163. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  164. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  165. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  166. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  167. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  168. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  169. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  170. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  171. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  172. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  173. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  174. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  175. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  176. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  177. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  178. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  179. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  180. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  181. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  182. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  183. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  184. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  185. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  186. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  187. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  188. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  189. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  190. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  191. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  192. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  193. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  194. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/count_lines.py +0 -0
  195. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/devops.py +0 -0
  196. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  197. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  198. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  199. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
  200. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/dotfile.py +0 -0
  201. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
  202. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
  203. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_agents_helper_types.py +0 -0
  204. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
  205. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  206. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_jobs_route_helper.py +0 -0
  207. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  208. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/ftpx.py +0 -0
  209. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  210. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/gh_models.py +0 -0
  211. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  212. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  213. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  214. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  215. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  216. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  217. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  218. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  219. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  220. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  221. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  222. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/repos.py +0 -0
  223. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/repos_helper.py +0 -0
  224. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
  225. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
  226. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
  227. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
  228. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/scheduler.py +0 -0
  229. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/sessions.py +0 -0
  230. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/snapshot.py +0 -0
  231. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  232. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  233. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/t4.py +0 -0
  234. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/viewer.py +0 -0
  235. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  236. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  237. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  238. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/agents.ps1 +0 -0
  239. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  240. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  241. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  242. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  243. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  244. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  245. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  246. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
  247. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  248. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  249. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  250. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  251. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  252. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  253. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  254. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
  255. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  256. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  257. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  258. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  259. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  260. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  261. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  262. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  263. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  264. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/sessions.ps1 +0 -0
  265. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  266. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  267. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  268. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  269. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  270. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  271. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  272. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  273. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  274. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  275. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/__init__.py +0 -0
  276. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/broot/br.sh +0 -0
  277. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  278. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/broot/conf.toml +0 -0
  279. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/glow/glow.yml +0 -0
  280. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  281. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/helix/config.toml +0 -0
  282. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/helix/languages.toml +0 -0
  283. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/keras/keras.json +0 -0
  284. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  285. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  286. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  287. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  288. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  289. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  290. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  291. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  292. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  293. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  294. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/colors +0 -0
  295. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  296. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  297. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  298. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  299. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  300. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  301. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/icons +0 -0
  302. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  303. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  304. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  305. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  306. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  307. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  308. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  309. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  310. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  311. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  312. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  313. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/colors +0 -0
  314. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  315. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/icons +0 -0
  316. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  317. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  318. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  319. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  320. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  321. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  322. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  323. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/linters/.flake8 +0 -0
  324. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  325. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/linters/.pylintrc +0 -0
  326. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  327. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  328. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  329. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  330. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  331. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  332. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/mprocs/windows/other +0 -0
  333. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  334. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  335. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/procs/.procs.toml +0 -0
  336. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  337. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/rofi/config.rasi +0 -0
  338. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  339. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  340. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  341. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  342. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  343. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  344. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  345. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  346. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  347. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  348. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  349. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  350. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  351. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  352. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  353. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  354. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  355. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/streamlit/config.toml +0 -0
  356. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  357. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  358. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  359. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/tere/terecd.sh +0 -0
  360. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  361. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  362. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  363. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  364. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/yazi/theme.toml +0 -0
  365. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  366. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zed/settings.json +0 -0
  367. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  368. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  369. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/config.kdl +0 -0
  370. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  371. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  372. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  373. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  374. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  375. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  376. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/__init__.py +0 -0
  377. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  378. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  379. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
  380. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  381. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
  382. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  383. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
  384. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/__init__.py +0 -0
  385. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  386. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  387. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
  388. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
  389. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
  390. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
  391. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  392. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  393. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/__init__.py +0 -0
  394. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/accessories.py +0 -0
  395. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/ai/__init__.py +0 -0
  396. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  397. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  398. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  399. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/installer.py +0 -0
  400. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  401. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  402. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  403. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/io.py +0 -0
  404. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/links.py +0 -0
  405. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/notifications.py +0 -0
  406. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/path_extended.py +0 -0
  407. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/path_helper.py +0 -0
  408. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/procs.py +0 -0
  409. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/scheduler.py +0 -0
  410. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/scheduling.py +0 -0
  411. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  412. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  413. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  414. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  415. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/source_of_truth.py +0 -0
  416. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/ssh.py +0 -0
  417. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/upgrade_packages.py +0 -0
  418. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig/utils/ve.py +0 -0
  419. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  420. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig.egg-info/entry_points.txt +0 -0
  421. {machineconfig-5.13 → machineconfig-5.15}/src/machineconfig.egg-info/requires.txt +0 -0
  422. {machineconfig-5.13 → machineconfig-5.15}/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.13
3
+ Version: 5.15
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.13"
9
+ version = "5.15"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -85,6 +85,7 @@ where = ["src"]
85
85
  dev = [
86
86
  "aider>=0.2.6",
87
87
  "cleanpy>=0.5.1",
88
+ "cowsay>=6.1",
88
89
  "ipdb>=0.13.13",
89
90
  "ipykernel>=6.30.1",
90
91
  "ipython>=9.5.0",
@@ -112,8 +113,15 @@ docs = [
112
113
  "pdoc>=15.0.2",
113
114
  ]
114
115
  plot = [
116
+ "duckdb-engine>=0.17.0",
117
+ "ipykernel>=6.30.1",
118
+ "jupyterlab>=4.4.9",
115
119
  "kaleido>=1.1.0",
120
+ "matplotlib>=3.10.6",
121
+ "nbformat>=5.10.4",
116
122
  "numpy>=2.3.3",
117
123
  "plotly>=6.3.0",
118
124
  "polars>=1.33.1",
125
+ "python-magic>=0.4.27",
126
+ "sqlalchemy>=2.0.43",
119
127
  ]
@@ -0,0 +1,16 @@
1
+
2
+ import typer
3
+
4
+
5
+ def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to the git repository")):
6
+ from machineconfig.scripts.python import count_lines
7
+ from pathlib import Path
8
+ count_lines_path = Path(count_lines.__file__)
9
+ # --project $HOME/code/machineconfig
10
+ cmd = f"""uv run --python 3.13 --with machineconfig[plot] {count_lines_path} analyze-over-time {repo_path}"""
11
+ from machineconfig.utils.code import run_shell_script
12
+ run_shell_script(cmd)
13
+
14
+
15
+ if __name__ == "__main__":
16
+ pass
@@ -40,8 +40,6 @@ except Exception: print(pycode)
40
40
 
41
41
 
42
42
  def get_read_data_pycode(path: str):
43
- # We need to be careful here since we're generating Python code as a string
44
- # that will use f-strings itself
45
43
  return f"""
46
44
  from rich.panel import Panel
47
45
  from rich.text import Text
@@ -49,7 +47,8 @@ from rich.console import Console
49
47
  console = Console()
50
48
  p = PathExtended(r'{path}').absolute()
51
49
  try:
52
- dat = p.readit()
50
+ from machineconfig.utils.files.read import Read
51
+ dat = Read.read(p)
53
52
  if isinstance(dat, dict):
54
53
  panel_title = f"📄 File Data: {{p.name}}"
55
54
  console.print(Panel(Text(str(dat), justify="left"), title=panel_title, expand=False))
@@ -63,53 +62,25 @@ except Exception as e:
63
62
  """
64
63
 
65
64
 
66
- def get_read_pyfile_pycode(path: PathExtended, as_module: bool, cmd: str = ""):
67
- if as_module:
68
- pycode = rf"""
69
- import sys
70
- sys.path.append(r'{path.parent}')
71
- from {path.stem} import *
72
- {cmd}
73
- """
74
- else:
75
- pycode = f"""
76
- __file__ = PathExtended(r'{path}')
77
- {path.read_text(encoding="utf-8")}
78
- """
79
- return pycode
80
-
81
65
 
82
66
  def main(
83
- module: Annotated[bool, typer.Option("--module", "-m", help="flag to run the file as a module as opposed to main.")] = False,
84
- newWindow: Annotated[bool, typer.Option("--newWindow", "-w", help="flag for running in new window.")] = False,
85
- nonInteratctive: Annotated[bool, typer.Option("--nonInteratctive", "-N", help="flag for a non-interactive session.")] = False,
86
67
  python: Annotated[bool, typer.Option("--python", "-p", help="flag to use python over IPython.")] = False,
87
68
  fzf: Annotated[bool, typer.Option("--fzf", "-F", help="search with fuzzy finder for python scripts and run them")] = False,
88
69
  ve: Annotated[Optional[str], typer.Option("--ve", "-v", help="virtual enviroment to use, defaults to activated ve, if existed, else ve.")] = None,
89
70
  profile: Annotated[Optional[str], typer.Option("--profile", "-P", help="ipython profile to use, defaults to default profile.")] = None,
90
71
  read: Annotated[str, typer.Option("--read", "-r", help="read a binary file.")] = "",
91
- file: Annotated[str, typer.Option("--file", "-f", help="python file path to interpret")] = "",
92
- cmd: Annotated[str, typer.Option("--cmd", "-c", help="python command to interpret")] = "",
93
- terminal: Annotated[str, typer.Option("--terminal", "-t", help="specify which terminal to be used. Default console host.")] = "",
94
- shell: Annotated[str, typer.Option("--shell", "-S", help="specify which shell to be used. Defaults to CMD.")] = "",
95
72
  jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
96
73
  streamlit_viewer: Annotated[bool, typer.Option("--stViewer", "-s", help="view in streamlit app")] = False,
74
+ visidata: Annotated[bool, typer.Option("--visidata", "-V", help="open data file in visidata")] = False,
97
75
  ) -> None:
98
76
  # ==================================================================================
99
77
  # flags processing
100
- interactivity = "" if nonInteratctive else "-i"
78
+ interactivity = "-i"
101
79
  interpreter = "python" if python else "ipython"
102
80
  ipython_profile: Optional[str] = profile
103
81
  file_obj = PathExtended.cwd() # initialization value, could be modified according to args.
104
82
 
105
- if cmd != "":
106
- text = "🖥️ Executing command from CLI argument"
107
- console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
108
- import textwrap
109
-
110
- program = textwrap.dedent(cmd)
111
-
112
- elif fzf:
83
+ if fzf:
113
84
  text = "🔍 Searching for Python files..."
114
85
  console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
115
86
  options = [str(item) for item in PathExtended.cwd().search("*.py", r=True)]
@@ -119,13 +90,6 @@ def main(
119
90
  text = f"📄 Selected file: {PathExtended(file_selected).name}"
120
91
  console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
121
92
 
122
- elif file != "":
123
- file_obj = PathExtended(file.lstrip()).expanduser().absolute()
124
- program = get_read_pyfile_pycode(file_obj, as_module=module, cmd=cmd)
125
- text1 = f"📄 Loading file: {file_obj.name}"
126
- text2 = f"🔄 Mode: {'Module' if module else 'Script'}"
127
- console.print(Panel(f"{text1}\n{text2}", title="[bold blue]Info[/bold blue]"))
128
-
129
93
  elif read != "":
130
94
  if streamlit_viewer:
131
95
  # text = "📊 STARTING STREAMLIT VIEWER"
@@ -154,46 +118,35 @@ def main(
154
118
  preprogram = """
155
119
 
156
120
  #%%
157
- try:
158
- from crocodile.croshell import *
159
- print_header()
160
- print_logo(logo="crocodile")
161
- except ImportError:
162
- print("Crocodile not found, skipping import.")
121
+
122
+ from machineconfig.utils.files.headers import print_header, print_logo
123
+ print_header()
124
+ print_logo("CROCODILE")
163
125
  from pathlib import Path
164
- print(f"🐊 Crocodile Shell | Running @ {Path.cwd()}")
126
+
165
127
  """
166
128
 
167
129
  pyfile = PathExtended.tmp().joinpath(f"tmp_scripts/python/croshell/{randstr()}.py")
168
130
  pyfile.parent.mkdir(parents=True, exist_ok=True)
169
131
 
170
- if read != "":
171
- title = "Reading Data"
172
- elif file != "":
173
- title = "Running Python File"
174
- else:
175
- title = "Executed code"
132
+ title = "Reading Data"
176
133
  python_program = preprogram + add_print_header_pycode(str(pyfile), title=title) + program
177
134
  pyfile.write_text(python_program, encoding="utf-8")
178
135
  # ve_root_from_file, ipython_profile = get_ve_path_and_ipython_profile(PathExtended(file))
179
136
  ipython_profile = ipython_profile if ipython_profile is not None else "default"
180
137
  # ve_activateion_line = get_ve_activate_line(ve_name=args.ve or ve_profile_suggested, a_path=str(PathExtended.cwd()))
181
- shell_program = """
182
- #!/bin/bash
183
138
 
184
- """
185
- if jupyter:
139
+ if visidata:
140
+ fire_line = f"uv run --with visidata,pyarrow vd {str(file_obj)}"
141
+ elif jupyter:
186
142
  fire_line = f"code --new-window {str(pyfile)}"
187
143
  else:
188
- fire_line = f"uv run --project $HOME/code/machineconfig/.venv {interpreter} {interactivity} "
189
- if interpreter == "ipython": fire_line += f" --profile {ipython_profile} --no-banner"
190
- fire_line += " " + str(pyfile)
191
- shell_program += fire_line
192
- from rich.syntax import Syntax
193
- console.print(Syntax(shell_program, lexer="bash"))
194
- print()
195
- import subprocess
196
- subprocess.run(shell_program, shell=True, check=True)
144
+ if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
145
+ else: profile = ""
146
+ fire_line = f"uv run --python 3.13 --with machineconfig[plot] {interpreter} {interactivity} {profile} {str(pyfile)}"
147
+
148
+ from machineconfig.utils.code import run_shell_script
149
+ run_shell_script(fire_line)
197
150
 
198
151
 
199
152
  def arg_parser() -> None:
@@ -221,8 +221,8 @@ python -m machineconfig.cluster.templates.cli_click --file {choice_file} """
221
221
  command = "$ErrorActionPreference = 'SilentlyContinue';\n" + command + "\nStart-Sleep -Seconds 0.5"
222
222
  else:
223
223
  raise NotImplementedError(f"Platform {platform.system()} not supported.")
224
- from machineconfig.utils.code import run_script
225
- run_script(command)
224
+ from machineconfig.utils.code import run_shell_script
225
+ run_shell_script(command)
226
226
 
227
227
 
228
228
  def main(
@@ -27,27 +27,23 @@ from questionary import Choice
27
27
  from rich.console import Console
28
28
  from rich.panel import Panel
29
29
  from rich.text import Text
30
- from machineconfig.utils.code import run_script as run_command
30
+ from machineconfig.utils.code import run_shell_script
31
31
 
32
32
  _ = cast
33
33
  console = Console()
34
34
 
35
35
 
36
36
  def display_header() -> None:
37
- """Display the script header."""
38
37
  header_text = Text("MACHINE CONFIGURATION", style="bold magenta")
39
38
  subtitle_text = Text("Interactive Installation Script", style="italic cyan")
40
39
  console.print(Panel(f"📦 {header_text}\n{subtitle_text}", border_style="blue", padding=(1, 2)))
41
40
  def display_completion_message() -> None:
42
- """Display completion message."""
43
41
  completion_text = Text("INSTALLATION COMPLETE", style="bold green")
44
42
  subtitle_text = Text("System setup finished successfully", style="italic green")
45
43
  console.print(Panel(f"✨ {completion_text}\n{subtitle_text}\n\n🎉 Your system has been configured successfully!\n🔄 You may need to reboot to apply all changes.", border_style="green", padding=(1, 2)))
46
44
  def display_dotfiles_instructions() -> None:
47
- """Display instructions for dotfiles migration."""
48
45
  header_text = Text("DOTFILES MIGRATION", style="bold yellow")
49
46
  subtitle_text = Text("Configuration transfer options", style="italic yellow")
50
-
51
47
  instructions = """
52
48
  🖱️ [bold blue]Method 1: USING MOUSE WITHOUT KB OR BROWSER SHARE[/bold blue]
53
49
  On original machine, run:
@@ -65,32 +61,9 @@ def display_dotfiles_instructions() -> None:
65
61
  [dim]cd ~
66
62
  cloud_copy SHARE_URL . --config ss[/dim]
67
63
  (requires symlinks to be created first)"""
68
-
69
64
  console.print(Panel(f"📂 {header_text}\n{subtitle_text}\n\n{instructions}", border_style="yellow", padding=(1, 2)))
70
65
 
71
66
 
72
- def install_windows_desktop_apps() -> bool:
73
- """Install Windows desktop applications using winget."""
74
- if system() != "Windows":
75
- console.print("❌ This function is only available on Windows systems.", style="bold red")
76
- return False
77
- console.print("🔧 Installing Nerd Fonts", style="bold cyan")
78
- try:
79
- from machineconfig.jobs.installer.custom_dev.nerfont_windows_helper import install_nerd_fonts
80
- install_nerd_fonts()
81
- console.print("✅ Nerd Fonts installed successfully", style="bold green")
82
- except Exception as e:
83
- console.print(f"❌ Error installing Nerd Fonts: {e}", style="bold red")
84
- console.print("🔧 Setting Windows Terminal settings", style="bold cyan")
85
- try:
86
- from machineconfig.setup_windows.wt_and_pwsh.set_wt_settings import main as set_wt_settings_main
87
- set_wt_settings_main()
88
- console.print("✅ Windows Terminal settings configured successfully", style="bold green")
89
- except Exception as e:
90
- console.print(f"❌ Error setting Windows Terminal settings: {e}", style="bold red")
91
- return True
92
-
93
-
94
67
  def get_installation_choices() -> list[str]:
95
68
  """Get user choices for installation options."""
96
69
  choices = [
@@ -114,11 +87,15 @@ def get_installation_choices() -> list[str]:
114
87
 
115
88
 
116
89
  def execute_installations(selected_options: list[str]) -> None:
117
- """Execute the selected installation options."""
118
90
  if system() == "Windows":
119
- run_command("$HOME/.local/bin/uv.exe self update")
91
+ from machineconfig import setup_windows as module
92
+ script_path = Path(module.__file__).parent / "ve.ps1"
93
+ run_shell_script(script_path.read_text(encoding="utf-8"))
120
94
  else:
121
- run_command("$HOME/.local/bin/uv self update")
95
+ from machineconfig import setup_linux as module
96
+ script_path = Path(module.__file__).parent / "ve.sh"
97
+ run_shell_script(script_path.read_text(encoding="utf-8"))
98
+
122
99
  for maybe_a_group in selected_options:
123
100
  if maybe_a_group in ("ESSENTIAL", "DEV", "ESSENTIAL_SYSTEM", "DEV_SYSTEM", "TerminalEyeCandy"):
124
101
  console.print(Panel("⚡ [bold bright_yellow]CLI APPLICATIONS[/bold bright_yellow]\n[italic]Command-line tools installation[/italic]", border_style="bright_yellow"))
@@ -129,21 +106,25 @@ def execute_installations(selected_options: list[str]) -> None:
129
106
  console.print("✅ CLI applications installed successfully", style="bold green")
130
107
  except Exception as e:
131
108
  console.print(f"❌ Error installing CLI applications: {e}", style="bold red")
132
- run_command(". $HOME/.bashrc")
109
+ run_shell_script(". $HOME/.bashrc")
133
110
 
134
111
  if "upgrade_system" in selected_options:
135
112
  if system() == "Windows":
136
113
  console.print("❌ System upgrade is not applicable on Windows via this script.", style="bold red")
137
114
  elif system() == "Linux":
138
115
  console.print(Panel("🔄 [bold magenta]SYSTEM UPDATE[/bold magenta]\n[italic]Package management[/italic]", border_style="magenta"))
139
- run_command("sudo nala upgrade -y")
116
+ run_shell_script("sudo nala upgrade -y")
140
117
  else:
141
118
  console.print(f"❌ System upgrade not supported on {system()}.", style="bold red")
142
119
  if "install_repos" in selected_options:
143
120
  console.print(Panel("🐍 [bold green]PYTHON ENVIRONMENT[/bold green]\n[italic]Virtual environment setup[/italic]", border_style="green"))
144
- from machineconfig import setup_linux as module
145
- script = Path(module.__file__).parent / "repos.sh"
146
- run_command(f"bash {script}")
121
+ if system() == "Windows":
122
+ from machineconfig import setup_windows as module
123
+ script_path = Path(module.__file__).parent / "repos.ps1"
124
+ 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"))
147
128
 
148
129
  if "install_ssh_server" in selected_options:
149
130
  console.print(Panel("🔒 [bold red]SSH SERVER[/bold red]\n[italic]Remote access setup[/italic]", border_style="red"))
@@ -152,9 +133,9 @@ def execute_installations(selected_options: list[str]) -> None:
152
133
  Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
153
134
  Start-Service sshd
154
135
  Set-Service -Name sshd -StartupType 'Automatic'"""
155
- run_command(f'powershell -Command "{powershell_script}"')
136
+ run_shell_script(f'powershell -Command "{powershell_script}"')
156
137
  else:
157
- run_command("sudo nala install openssh-server -y")
138
+ run_shell_script("sudo nala install openssh-server -y")
158
139
 
159
140
  if "install_shell_profile" in selected_options:
160
141
  console.print(Panel("🐚 [bold green]SHELL PROFILE[/bold green]\n[italic]Shell configuration setup[/italic]", border_style="green"))
@@ -179,8 +160,8 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
179
160
  console.print("✅ Symlinks created successfully", style="bold green")
180
161
  except Exception as e:
181
162
  console.print(f"❌ Error creating symlinks: {e}", style="bold red")
182
- run_command("sudo chmod 600 $HOME/.ssh/*")
183
- run_command("sudo chmod 700 $HOME/.ssh")
163
+ run_shell_script("sudo chmod 600 $HOME/.ssh/*")
164
+ run_shell_script("sudo chmod 700 $HOME/.ssh")
184
165
  else:
185
166
  console.print("⏭️ Skipping symlink creation - finish dotfiles transfer first", style="yellow")
186
167
 
@@ -200,7 +181,10 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
200
181
  console.print(f"❌ Error retrieving backup data: {e}", style="bold red")
201
182
 
202
183
  if "install_windows_desktop" in selected_options:
203
- install_windows_desktop_apps()
184
+ from machineconfig.jobs.installer.custom_dev.nerfont_windows_helper import install_nerd_fonts
185
+ install_nerd_fonts()
186
+ from machineconfig.setup_windows.wt_and_pwsh.set_wt_settings import main as set_wt_settings_main
187
+ set_wt_settings_main()
204
188
 
205
189
 
206
190
  def main() -> None:
@@ -210,7 +194,7 @@ def main() -> None:
210
194
  if not selected_options:
211
195
  console.print("❌ No options selected. Exiting...", style="bold red")
212
196
  sys.exit(0)
213
- console.print(f"\n✅ Selected options: {', '.join(selected_options)}", style="bold green")
197
+ console.print(f"\n✅ Selected options: {'\n'.join(selected_options)}", style="bold green")
214
198
  proceed = questionary.confirm("🚀 Proceed with installation?", default=True).ask()
215
199
  if not proceed:
216
200
  console.print("❌ Installation cancelled.", style="bold red")
@@ -132,8 +132,8 @@ def main(
132
132
  #!/bin/bash
133
133
  ttyd --writable -t enableSixel=true {ssl_args} --port {port} --credential "{username}:{password}" -t 'theme={{"background": "black"}}' {start_command}
134
134
  """
135
- from machineconfig.utils.code import run_script
136
- run_script(code)
135
+ from machineconfig.utils.code import run_shell_script
136
+ run_shell_script(code)
137
137
 
138
138
 
139
139
  def main_with_parser():
@@ -10,3 +10,4 @@ Invoke-WebRequest -Uri "https://raw.githubusercontent.com/thisismygitrepo/machin
10
10
  rm ve.ps1
11
11
 
12
12
  uv run --python 3.13 --with machineconfig devops interactive
13
+ # uv run --python 3.13 --with machineconfig https://raw.githubusercontent.com/thisismygitrepo/machineconfig/ee4f69e838e1acbb275bfb5a3d3faee23345f2a8/src/machineconfig/scripts/python/devops.py
@@ -98,7 +98,7 @@ def print_code(code: str, lexer: str, desc: str, subtitle: str = ""):
98
98
  console.print(Panel(Syntax(code=code, lexer=lexer), title=f"📄 {desc}", subtitle=subtitle), style="bold red")
99
99
 
100
100
 
101
- def run_script(program: str):
101
+ def run_shell_script(program: str):
102
102
  import tempfile
103
103
  if platform.system() == "Windows":
104
104
  suffix = ".ps1"
@@ -0,0 +1,118 @@
1
+ """Ascii art
2
+ """
3
+
4
+ import os
5
+ import random
6
+ import textwrap
7
+ import subprocess
8
+ from pathlib import Path
9
+ import tempfile
10
+ import platform
11
+ from typing import Optional, Literal
12
+
13
+ # https://github.com/sepandhaghighi/art
14
+
15
+
16
+ BOX_OR_CHAR = Literal['boxes', 'cowsay']
17
+
18
+
19
+ class ArtLib:
20
+ @staticmethod
21
+ def cowsay(text: str):
22
+ import cowsay
23
+ char = random.choice(cowsay.char_names)
24
+ return cowsay.get_output_string(char, text=text)
25
+
26
+
27
+ class BoxStyles:
28
+ language = ['ada-box', 'caml', 'boxquote', 'stone', 'tex-box', 'shell', 'simple', 'c', 'cc', 'html']
29
+ scene = ['whirly', 'xes', 'columns', 'parchment', 'scroll', 'scroll-akn', 'diamonds', 'headline', 'nuke', 'spring', 'stark1'] # , 'important3'
30
+ character = ['capgirl', 'cat', 'boy', 'girl', 'dog', 'mouse', 'santa', 'face', 'ian_jones', 'peek', 'unicornsay']
31
+
32
+
33
+ class CowStyles:
34
+ eyes = ['-b', '-d', '-g', '-h', '-l', '-L', '-n', '-N', '-p', '-s', '-t', '-w', '-y']
35
+ # this one for the package installed with sudo apt install cowsay and is located at /usr/games/cowsay. See cowsay -l
36
+ figures = ['apt', 'bunny', 'cheese', 'cock', 'cower', 'daemon', 'default', 'dragon',
37
+ 'dragon-and-cow', 'duck', 'elephant', 'elephant-in-snake', 'eyes', 'fox', 'ghostbusters',
38
+ 'gnu', 'kangaroo', 'kiss', 'milk',
39
+ 'moose', 'pony', 'pony-smaller', 'sheep', 'skeleton', 'snowman', 'stegosaurus', # 'suse',
40
+ 'three-eyes', 'turkey', 'turtle', 'tux', 'unipony', 'unipony-smaller', 'vader', 'vader'] # 'hellokitty' 'mech-and-cow' # 'moofasa', 'stimpy', 'calvin', , 'ren', 'koala', 'flaming-sheep' , 'bud-frogs' , 'kosh' , 'luke-koala'
41
+
42
+
43
+ FIGLET_FONTS = ['banner', 'big', 'standard']
44
+
45
+ FIGJS_FONTS = ['3D Diagonal', '3D-ASCII', '4Max', '5 Line Oblique', 'Acrobatic', 'ANSI Regular', 'ANSI Shadow',
46
+ 'Avatar', 'Banner', 'Banner3-D', 'Banner4',
47
+ 'Basic', 'Big Money-ne', 'Big Money-nw', 'Big Money-se', 'Big Money-sw', 'Big', 'Bloody', 'Bolger', 'Braced', 'Bright',
48
+ 'DOS Rebel',
49
+ 'Elite', 'Epic', 'Flower Power',
50
+ 'Fraktur', # 'Isometric4'. 'AMC Tubes', 'Banner3', Alligator2
51
+ 'Star Wars',
52
+ 'Sub-Zero', 'The Edge', 'USA Flag', 'Varsity', "Doom"
53
+ ] # too large Crazy 'Sweet', 'Electronic', 'Swamp Land', Crawford, Alligator
54
+
55
+
56
+ def get_art(comment: Optional[str] = None, artlib: Optional[BOX_OR_CHAR] = None, style: Optional[str] = None, super_style: str = 'scene', prefix: str = ' ', file: Optional[str] = None, verbose: bool = True):
57
+ """ takes in a comment and does the following wrangling:
58
+ * text => figlet font => boxes => lolcat
59
+ * text => cowsay => lolcat
60
+ """
61
+ if comment is None:
62
+ try:
63
+ comment = subprocess.run("fortune", shell=True, capture_output=True, text=True, check=True).stdout
64
+ except Exception:
65
+ comment = "crocodile"
66
+ if artlib is None: artlib = random.choice(['boxes', 'cowsay'])
67
+ to_file = '' if not file else f'> {file}'
68
+ if artlib == 'boxes':
69
+ if style is None: style = random.choice(BoxStyles.__dict__[super_style or random.choice(['language', 'scene', 'character'])])
70
+ fonting = f'figlet -f {random.choice(FIGLET_FONTS)}'
71
+ cmd = f"""echo "{comment}" | {fonting} | boxes -d {style} {to_file}"""
72
+ else:
73
+ if style is None: style = random.choice(CowStyles.figures)
74
+ cmd = f"""echo "{comment}" | /usr/games/cowsay -f {style} {to_file}"""
75
+ try:
76
+ res = subprocess.run(cmd, text=True, capture_output=True, shell=True, check=True).stdout
77
+ except subprocess.CalledProcessError as ex:
78
+ print(ex)
79
+ return ""
80
+ res = textwrap.indent(res, prefix=prefix)
81
+ if verbose:
82
+ print(f'Using style: {style} from {artlib}', '\n' * 3)
83
+ print(f'{cmd=}')
84
+ print('Results:\n', res)
85
+ return res
86
+
87
+
88
+ def font_box_color(logo: str):
89
+ font = random.choice(FIGJS_FONTS)
90
+ # print(f"{font}\n")
91
+ box_style = random.choice(['whirly', 'xes', 'columns', 'parchment', 'scroll', 'scroll-akn', 'diamonds', 'headline', 'nuke', 'spring', 'stark1'])
92
+ _cmd = f'figlet -f "{font}" "{logo}" | boxes -d "{box_style}" | lolcatjs'
93
+ # print(_cmd)
94
+ os.system(_cmd) # | lolcat
95
+ # print("after")
96
+
97
+
98
+ def character_color(logo: str):
99
+ assert platform.system() == 'Windows', 'This function is only for Windows.'
100
+ with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as f:
101
+ f.write(ArtLib.cowsay(logo))
102
+ _new_art = f.name
103
+ os.system(f'type {_new_art} | lolcatjs') # | lolcat
104
+
105
+
106
+ def character_or_box_color(logo: str):
107
+ assert platform.system() in {'Linux', 'Darwin'}, 'This function is only for Linux and macOS.'
108
+ with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as f:
109
+ _new_art = f.name
110
+ get_art(logo, artlib=None, file=_new_art, verbose=False)
111
+ # Prefer bat on mac if available, fallback to cat
112
+ pager = "bat" if (platform.system() == "Darwin" and any((Path(p).joinpath("bat").exists() for p in os.environ.get("PATH", "").split(os.pathsep)))) else "cat"
113
+ command = f"{pager} {_new_art} | lolcat"
114
+ os.system(command)
115
+
116
+
117
+ if __name__ == '__main__':
118
+ pass
@@ -0,0 +1,71 @@
1
+
2
+ import glob
3
+ import os
4
+ import platform
5
+ import random
6
+ from pathlib import Path
7
+ from rich import pretty
8
+ from rich.console import Console
9
+ from typing import Optional
10
+
11
+
12
+ def print_header():
13
+ console = Console()
14
+ pretty.install()
15
+
16
+ # Environment Information Panel
17
+ from rich.panel import Panel
18
+ from rich.table import Table
19
+
20
+ table = Table(show_header=False, show_edge=False, pad_edge=False)
21
+ table.add_column("Label", style="cyan", no_wrap=True)
22
+ table.add_column("Value", style="white")
23
+
24
+ table.add_row("Python Version", platform.python_version())
25
+ table.add_row("Operating System", platform.system())
26
+ table.add_row("Virtual Environment", os.getenv('VIRTUAL_ENV', 'None'))
27
+ table.add_row("Running @", str(Path.cwd()))
28
+
29
+
30
+ console.print(Panel(table, title="[bold blue]✨ 🐊 Crocodile Shell 14.5 ✨ Made with 🐍 | Built with ❤️[/bold blue]", border_style="blue"))
31
+ def print_logo(logo: str):
32
+ from machineconfig.utils.files.ascii_art import font_box_color, character_color, character_or_box_color
33
+ if platform.system() == "Windows":
34
+ _1x = Path.home().joinpath(r"AppData/Roaming/npm/figlet").exists()
35
+ _2x = Path.home().joinpath(r"AppData/Roaming/npm/lolcatjs").exists()
36
+ _3x = Path.home().joinpath(r"AppData/Local/Microsoft/WindowsApps/boxes.exe").exists()
37
+ if _1x and _2x and _3x:
38
+ if random.choice([True, True, False]): font_box_color(logo)
39
+ else: character_color(logo)
40
+ else:
41
+ print("\n" + "🚫 " + "-" * 70 + " 🚫")
42
+ print("🔍 Missing ASCII art dependencies. Install with: iwr bit.ly/cfgasciiartwindows | iex")
43
+ print("🚫 " + "-" * 70 + " 🚫\n")
44
+ _default_art = Path(random.choice(glob.glob(str(Path(__file__).parent.joinpath("art", "*")))))
45
+ print(_default_art.read_text())
46
+ elif platform.system() in ["Linux", "Darwin"]: # Explicitly handle both Linux and macOS
47
+ def is_executable_in_path(executable_name: str) -> Optional[str]:
48
+ path_dirs = os.environ['PATH'].split(os.pathsep)
49
+ for path_dir in path_dirs:
50
+ path_to_executable = os.path.join(path_dir, executable_name)
51
+ if os.path.isfile(path_to_executable) and os.access(path_to_executable, os.X_OK): return path_to_executable
52
+ return None
53
+ avail_cowsay = is_executable_in_path("cowsay")
54
+ avail_lolcat = is_executable_in_path("lolcat")
55
+ avail_boxes = is_executable_in_path("boxes")
56
+ avail_figlet = is_executable_in_path("figlet")
57
+ if avail_cowsay and avail_lolcat and avail_boxes and avail_figlet:
58
+ _dynamic_art = random.choice([True, True, True, True, False])
59
+ if _dynamic_art: character_or_box_color(logo=logo)
60
+ else: print(Path(random.choice(glob.glob(str(Path(__file__).parent.joinpath("art", "*"))))).read_text())
61
+ else:
62
+ print("\n" + "🚫 " + "-" * 70 + " 🚫")
63
+ install_cmd = "devops install --group TerminalEyeCandy" if platform.system() == "Linux" else "brew install cowsay lolcat boxes figlet"
64
+ print(f"🔍 Missing ASCII art dependencies. Install with: {install_cmd}")
65
+ print("🚫 " + "-" * 70 + " 🚫\n")
66
+ _default_art = Path(random.choice(glob.glob(str(Path(__file__).parent.joinpath("art", "*")))))
67
+ print(_default_art.read_text())
68
+ else:
69
+ print(f"⚠️ Platform {platform.system()} not supported for ASCII art. Using default art.")
70
+ _default_art = Path(random.choice(glob.glob(str(Path(__file__).parent.joinpath("art", "*")))))
71
+ print(_default_art.read_text())