machineconfig 3.7__py3-none-any.whl → 7.69__py3-none-any.whl

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 (465) hide show
  1. machineconfig/__init__.py +0 -28
  2. machineconfig/cluster/remote/distribute.py +0 -1
  3. machineconfig/cluster/remote/file_manager.py +0 -2
  4. machineconfig/cluster/remote/script_execution.py +1 -2
  5. machineconfig/cluster/sessions_managers/{enhanced_command_runner.py → helpers/enhanced_command_runner.py} +4 -6
  6. machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +145 -0
  7. machineconfig/cluster/sessions_managers/utils/load_balancer.py +53 -0
  8. machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
  9. machineconfig/cluster/sessions_managers/wt_local.py +128 -330
  10. machineconfig/cluster/sessions_managers/wt_local_manager.py +53 -187
  11. machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
  12. machineconfig/cluster/sessions_managers/wt_remote_manager.py +49 -197
  13. machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +6 -19
  14. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  15. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  16. machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +4 -2
  17. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  18. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  19. machineconfig/cluster/sessions_managers/zellij_local.py +81 -375
  20. machineconfig/cluster/sessions_managers/zellij_local_manager.py +22 -172
  21. machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
  22. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +13 -10
  23. machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +4 -8
  24. machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +5 -20
  25. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -9
  26. machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +3 -1
  27. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +298 -0
  28. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +77 -0
  29. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +228 -0
  30. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +165 -0
  31. machineconfig/jobs/{python → installer}/check_installations.py +7 -21
  32. machineconfig/jobs/installer/custom/boxes.py +61 -0
  33. machineconfig/jobs/installer/custom/gh.py +128 -0
  34. machineconfig/jobs/{python_custom_installers → installer/custom}/hx.py +84 -18
  35. machineconfig/jobs/installer/custom_dev/alacritty.py +86 -0
  36. machineconfig/jobs/installer/custom_dev/brave.py +82 -0
  37. machineconfig/jobs/installer/custom_dev/bypass_paywall.py +59 -0
  38. machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
  39. machineconfig/jobs/installer/custom_dev/code.py +63 -0
  40. machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/cursor.py +7 -7
  41. machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
  42. machineconfig/jobs/installer/custom_dev/espanso.py +117 -0
  43. machineconfig/jobs/installer/custom_dev/goes.py +68 -0
  44. machineconfig/jobs/installer/custom_dev/lvim.py +89 -0
  45. machineconfig/jobs/installer/custom_dev/nerdfont.py +111 -0
  46. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +149 -0
  47. machineconfig/jobs/installer/custom_dev/redis.py +88 -0
  48. machineconfig/jobs/installer/custom_dev/sysabc.py +145 -0
  49. machineconfig/jobs/installer/custom_dev/wezterm.py +92 -0
  50. machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/winget.py +2 -3
  51. machineconfig/jobs/installer/installer_data.json +3440 -0
  52. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/brave.sh +4 -14
  53. machineconfig/jobs/{python_custom_installers/scripts/linux/warp-cli.sh → installer/linux_scripts/cloudflare_warp_cli.sh} +5 -17
  54. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/docker.sh +6 -18
  55. machineconfig/jobs/installer/linux_scripts/docker_start.sh +37 -0
  56. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/edge.sh +3 -11
  57. machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +2 -8
  58. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/nerdfont.sh +5 -17
  59. machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +2 -8
  60. machineconfig/jobs/installer/linux_scripts/ngrok.sh +6 -0
  61. machineconfig/jobs/installer/linux_scripts/q.sh +9 -0
  62. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/redis.sh +6 -17
  63. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/vscode.sh +5 -17
  64. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/wezterm.sh +4 -12
  65. machineconfig/jobs/installer/package_groups.py +255 -0
  66. machineconfig/logger.py +0 -1
  67. machineconfig/profile/backup.toml +49 -0
  68. machineconfig/profile/bash_shell_profiles.md +11 -0
  69. machineconfig/profile/create_helper.py +74 -0
  70. machineconfig/profile/create_links.py +288 -0
  71. machineconfig/profile/create_links_export.py +100 -0
  72. machineconfig/profile/create_shell_profile.py +136 -0
  73. machineconfig/profile/mapper.toml +258 -0
  74. machineconfig/scripts/__init__.py +0 -4
  75. machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
  76. machineconfig/scripts/linux/wrap_mcfg +47 -0
  77. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  78. machineconfig/scripts/python/agents.py +198 -0
  79. machineconfig/scripts/python/ai/command_runner/command_runner.sh +9 -0
  80. machineconfig/scripts/python/ai/command_runner/prompt.txt +9 -0
  81. machineconfig/scripts/python/ai/generate_files.py +307 -42
  82. machineconfig/scripts/python/ai/{mcinit.py → initai.py} +3 -38
  83. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +114 -0
  84. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +88 -22
  85. machineconfig/scripts/python/ai/solutions/_shared.py +9 -1
  86. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -1
  87. machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
  88. machineconfig/scripts/python/ai/solutions/gemini/settings.json +1 -1
  89. machineconfig/scripts/python/ai/solutions/generic.py +27 -4
  90. machineconfig/scripts/python/ai/vscode_tasks.py +37 -0
  91. machineconfig/scripts/python/cloud.py +29 -0
  92. machineconfig/scripts/python/croshell.py +129 -198
  93. machineconfig/scripts/python/define.py +31 -0
  94. machineconfig/scripts/python/devops.py +45 -131
  95. machineconfig/scripts/python/devops_navigator.py +6 -0
  96. machineconfig/scripts/python/env_manager/__init__.py +1 -0
  97. machineconfig/scripts/python/env_manager/path_manager_backend.py +47 -0
  98. machineconfig/scripts/python/env_manager/path_manager_tui.py +228 -0
  99. machineconfig/scripts/python/fire_jobs.py +166 -235
  100. machineconfig/scripts/python/ftpx.py +164 -100
  101. machineconfig/scripts/python/helpers/ast_search.py +74 -0
  102. machineconfig/scripts/python/helpers/repo_rag.py +325 -0
  103. machineconfig/scripts/python/helpers/symantic_search.py +25 -0
  104. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
  105. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +37 -0
  106. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
  107. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +42 -0
  108. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  109. machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +110 -0
  110. machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +34 -0
  111. machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +22 -0
  112. machineconfig/scripts/python/helpers_agents/templates/prompt.txt +6 -0
  113. machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
  114. machineconfig/scripts/python/helpers_agents/templates/template.sh +24 -0
  115. machineconfig/scripts/python/{cloud_copy.py → helpers_cloud/cloud_copy.py} +52 -39
  116. machineconfig/scripts/python/{cloud_mount.py → helpers_cloud/cloud_mount.py} +13 -18
  117. machineconfig/scripts/python/helpers_cloud/cloud_sync.py +81 -0
  118. machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +3 -3
  119. machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
  120. machineconfig/scripts/python/{scheduler.py → helpers_croshell/scheduler.py} +0 -1
  121. machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +32 -20
  122. machineconfig/scripts/python/helpers_devops/cli_config.py +95 -0
  123. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +89 -0
  124. machineconfig/scripts/python/helpers_devops/cli_data.py +25 -0
  125. machineconfig/scripts/python/helpers_devops/cli_nw.py +134 -0
  126. machineconfig/scripts/python/helpers_devops/cli_repos.py +182 -0
  127. machineconfig/scripts/python/helpers_devops/cli_self.py +134 -0
  128. machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
  129. machineconfig/scripts/python/helpers_devops/cli_share_server.py +141 -0
  130. machineconfig/scripts/python/helpers_devops/cli_terminal.py +156 -0
  131. machineconfig/scripts/python/helpers_devops/cli_utils.py +96 -0
  132. machineconfig/scripts/python/{devops_backup_retrieve.py → helpers_devops/devops_backup_retrieve.py} +7 -10
  133. machineconfig/scripts/python/helpers_devops/devops_status.py +511 -0
  134. machineconfig/scripts/python/helpers_devops/devops_update_repos.py +269 -0
  135. machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +81 -0
  136. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
  137. machineconfig/scripts/python/{choose_wezterm_theme.py → helpers_devops/themes/choose_wezterm_theme.py} +2 -2
  138. machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -2
  139. machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -89
  140. machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +145 -0
  141. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +110 -0
  142. machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
  143. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfag +1 -1
  144. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +1 -1
  145. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfrga +1 -1
  146. machineconfig/scripts/python/helpers_navigator/__init__.py +20 -0
  147. machineconfig/scripts/python/helpers_navigator/command_builder.py +111 -0
  148. machineconfig/scripts/python/helpers_navigator/command_detail.py +44 -0
  149. machineconfig/scripts/python/helpers_navigator/command_tree.py +620 -0
  150. machineconfig/scripts/python/helpers_navigator/data_models.py +28 -0
  151. machineconfig/scripts/python/helpers_navigator/main_app.py +272 -0
  152. machineconfig/scripts/python/helpers_navigator/search_bar.py +15 -0
  153. machineconfig/scripts/python/helpers_repos/action.py +209 -0
  154. machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
  155. machineconfig/scripts/python/{repos_helper_clone.py → helpers_repos/clone.py} +6 -7
  156. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
  157. machineconfig/scripts/python/helpers_repos/count_lines.py +348 -0
  158. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +17 -0
  159. machineconfig/scripts/python/helpers_repos/entrypoint.py +77 -0
  160. machineconfig/scripts/python/helpers_repos/grource.py +340 -0
  161. machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +7 -4
  162. machineconfig/scripts/python/helpers_repos/sync.py +66 -0
  163. machineconfig/scripts/python/{repos_helper_update.py → helpers_repos/update.py} +3 -3
  164. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +58 -0
  165. machineconfig/scripts/python/helpers_utils/download.py +152 -0
  166. machineconfig/scripts/python/helpers_utils/path.py +108 -0
  167. machineconfig/scripts/python/interactive.py +187 -0
  168. machineconfig/scripts/python/mcfg_entry.py +63 -0
  169. machineconfig/scripts/python/msearch.py +40 -0
  170. machineconfig/scripts/python/{devops_add_identity.py → nw/devops_add_identity.py} +1 -3
  171. machineconfig/scripts/python/{devops_add_ssh_key.py → nw/devops_add_ssh_key.py} +74 -44
  172. machineconfig/scripts/{linux → python/nw}/mount_nfs +1 -1
  173. machineconfig/scripts/python/{mount_nfs.py → nw/mount_nfs.py} +19 -16
  174. machineconfig/scripts/{linux → python/nw}/mount_nw_drive +1 -2
  175. machineconfig/scripts/python/{mount_ssh.py → nw/mount_ssh.py} +7 -8
  176. machineconfig/scripts/python/{onetimeshare.py → nw/onetimeshare.py} +0 -1
  177. machineconfig/scripts/python/nw/ssh_debug_linux.py +391 -0
  178. machineconfig/scripts/python/nw/ssh_debug_windows.py +338 -0
  179. machineconfig/scripts/python/{wifi_conn.py → nw/wifi_conn.py} +1 -51
  180. machineconfig/scripts/python/nw/wsl_windows_transfer.py +67 -0
  181. machineconfig/scripts/python/sessions.py +167 -0
  182. machineconfig/scripts/python/terminal.py +127 -0
  183. machineconfig/scripts/python/utils.py +66 -0
  184. machineconfig/scripts/windows/mounts/Restore-ThunderbirdProfile.ps1 +92 -0
  185. machineconfig/scripts/windows/{mount_nfs.ps1 → mounts/mount_nfs.ps1} +1 -3
  186. machineconfig/scripts/windows/{mount_ssh.ps1 → mounts/mount_ssh.ps1} +1 -1
  187. machineconfig/scripts/windows/{share_smb.ps1 → mounts/share_smb.ps1} +0 -6
  188. machineconfig/scripts/windows/wrap_mcfg.ps1 +60 -0
  189. machineconfig/settings/broot/br.sh +0 -4
  190. machineconfig/settings/broot/conf.toml +1 -1
  191. machineconfig/settings/helix/config.toml +16 -0
  192. machineconfig/settings/helix/languages.toml +13 -4
  193. machineconfig/settings/helix/yazi-picker.sh +12 -0
  194. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  195. machineconfig/settings/lf/linux/exe/previewer.sh +9 -3
  196. machineconfig/settings/lf/linux/lfrc +10 -12
  197. machineconfig/settings/lf/windows/fzf_edit.ps1 +2 -2
  198. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  199. machineconfig/settings/lf/windows/lfrc +18 -38
  200. machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
  201. machineconfig/settings/linters/.ruff.toml +1 -1
  202. machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -6
  203. machineconfig/settings/marimo/marimo.toml +80 -0
  204. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  205. machineconfig/settings/pistol/pistol.conf +1 -1
  206. machineconfig/settings/shells/bash/init.sh +55 -31
  207. machineconfig/settings/shells/nushell/config.nu +1 -34
  208. machineconfig/settings/shells/nushell/init.nu +127 -0
  209. machineconfig/settings/shells/pwsh/init.ps1 +61 -43
  210. machineconfig/settings/shells/starship/starship.toml +16 -0
  211. machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
  212. machineconfig/settings/shells/wt/settings.json +32 -17
  213. machineconfig/settings/shells/zsh/init.sh +89 -0
  214. machineconfig/settings/svim/linux/init.toml +0 -4
  215. machineconfig/settings/svim/windows/init.toml +0 -3
  216. machineconfig/settings/yazi/init.lua +57 -0
  217. machineconfig/settings/yazi/keymap_linux.toml +79 -0
  218. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  219. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  220. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  221. machineconfig/settings/yazi/yazi.toml +14 -1
  222. machineconfig/setup_linux/__init__.py +10 -0
  223. machineconfig/setup_linux/apps_desktop.sh +89 -0
  224. machineconfig/setup_linux/apps_gui.sh +64 -0
  225. machineconfig/setup_linux/{nix → others}/cli_installation.sh +9 -29
  226. machineconfig/setup_linux/ssh/openssh_all.sh +25 -0
  227. machineconfig/setup_linux/ssh/openssh_wsl.sh +38 -0
  228. machineconfig/setup_linux/uv.sh +15 -0
  229. machineconfig/setup_linux/web_shortcuts/interactive.sh +28 -203
  230. machineconfig/setup_mac/__init__.py +16 -0
  231. machineconfig/setup_mac/apps_gui.sh +248 -0
  232. machineconfig/setup_mac/ssh/openssh_setup.sh +114 -0
  233. machineconfig/setup_mac/uv.sh +36 -0
  234. machineconfig/setup_windows/__init__.py +8 -0
  235. machineconfig/setup_windows/others/power_options.ps1 +7 -0
  236. machineconfig/setup_windows/ssh/add-sshkey.ps1 +29 -0
  237. machineconfig/setup_windows/ssh/add_identity.ps1 +11 -0
  238. machineconfig/setup_windows/ssh/openssh-server.ps1 +37 -0
  239. machineconfig/setup_windows/uv.ps1 +17 -0
  240. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +28 -189
  241. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  242. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +37 -23
  243. machineconfig/utils/accessories.py +52 -12
  244. machineconfig/utils/cloud/onedrive/README.md +139 -0
  245. machineconfig/utils/code.py +140 -93
  246. machineconfig/utils/files/art/fat_croco.txt +10 -0
  247. machineconfig/utils/files/art/halfwit_croco.txt +9 -0
  248. machineconfig/utils/files/art/happy_croco.txt +22 -0
  249. machineconfig/utils/files/art/water_croco.txt +11 -0
  250. machineconfig/utils/files/ascii_art.py +118 -0
  251. machineconfig/utils/files/dbms.py +257 -0
  252. machineconfig/utils/files/headers.py +68 -0
  253. machineconfig/utils/files/ouch/decompress.py +45 -0
  254. machineconfig/utils/files/read.py +95 -0
  255. machineconfig/utils/installer_utils/github_release_bulk.py +188 -0
  256. machineconfig/utils/installer_utils/install_from_url.py +180 -0
  257. machineconfig/utils/installer_utils/installer_class.py +239 -316
  258. machineconfig/utils/installer_utils/installer_cli.py +186 -0
  259. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +90 -5
  260. machineconfig/utils/installer_utils/installer_runner.py +191 -0
  261. machineconfig/utils/io.py +77 -24
  262. machineconfig/utils/links.py +309 -100
  263. machineconfig/utils/meta.py +255 -0
  264. machineconfig/utils/notifications.py +1 -1
  265. machineconfig/utils/options.py +19 -47
  266. machineconfig/utils/path_extended.py +111 -121
  267. machineconfig/utils/path_helper.py +75 -22
  268. machineconfig/utils/procs.py +50 -74
  269. machineconfig/utils/scheduler.py +94 -97
  270. machineconfig/utils/scheduling.py +0 -3
  271. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +5 -17
  272. machineconfig/utils/schemas/installer/installer_types.py +28 -6
  273. machineconfig/utils/schemas/layouts/layout_types.py +34 -1
  274. machineconfig/utils/source_of_truth.py +3 -6
  275. machineconfig/utils/ssh.py +742 -254
  276. machineconfig/utils/ssh_utils/utils.py +0 -0
  277. machineconfig/utils/terminal.py +3 -140
  278. machineconfig/utils/tst.py +20 -0
  279. machineconfig/utils/upgrade_packages.py +109 -28
  280. machineconfig/utils/ve.py +13 -5
  281. machineconfig-7.69.dist-info/METADATA +124 -0
  282. machineconfig-7.69.dist-info/RECORD +454 -0
  283. machineconfig-7.69.dist-info/entry_points.txt +15 -0
  284. machineconfig/cluster/templates/cli_click.py +0 -102
  285. machineconfig/cluster/templates/cli_gooey.py +0 -115
  286. machineconfig/cluster/templates/utils.py +0 -51
  287. machineconfig/jobs/linux/msc/cli_agents.sh +0 -32
  288. machineconfig/jobs/python/create_bootable_media.py +0 -16
  289. machineconfig/jobs/python/python_cargo_build_share.py +0 -59
  290. machineconfig/jobs/python/python_ve_symlink.py +0 -29
  291. machineconfig/jobs/python/tasks.py +0 -3
  292. machineconfig/jobs/python/vscode/api.py +0 -48
  293. machineconfig/jobs/python/vscode/link_ve.py +0 -63
  294. machineconfig/jobs/python/vscode/select_interpreter.py +0 -87
  295. machineconfig/jobs/python/vscode/sync_code.py +0 -58
  296. machineconfig/jobs/python_custom_installers/archive/ngrok.py +0 -63
  297. machineconfig/jobs/python_custom_installers/dev/aider.py +0 -37
  298. machineconfig/jobs/python_custom_installers/dev/alacritty.py +0 -65
  299. machineconfig/jobs/python_custom_installers/dev/brave.py +0 -71
  300. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +0 -50
  301. machineconfig/jobs/python_custom_installers/dev/code.py +0 -51
  302. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -78
  303. machineconfig/jobs/python_custom_installers/dev/espanso.py +0 -90
  304. machineconfig/jobs/python_custom_installers/dev/goes.py +0 -55
  305. machineconfig/jobs/python_custom_installers/dev/lvim.py +0 -77
  306. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +0 -68
  307. machineconfig/jobs/python_custom_installers/dev/redis.py +0 -65
  308. machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +0 -31
  309. machineconfig/jobs/python_custom_installers/dev/wezterm.py +0 -70
  310. machineconfig/jobs/python_custom_installers/docker.py +0 -74
  311. machineconfig/jobs/python_custom_installers/gh.py +0 -97
  312. machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +0 -45
  313. machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +0 -49
  314. machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +0 -85
  315. machineconfig/jobs/python_custom_installers/warp-cli.py +0 -71
  316. machineconfig/jobs/python_generic_installers/config.json +0 -603
  317. machineconfig/jobs/python_generic_installers/config.json.bak +0 -414
  318. machineconfig/jobs/python_generic_installers/dev/config.archive.json +0 -18
  319. machineconfig/jobs/python_generic_installers/dev/config.json +0 -825
  320. machineconfig/jobs/python_generic_installers/dev/config.json.bak +0 -565
  321. machineconfig/jobs/python_linux_installers/archive/config.json +0 -18
  322. machineconfig/jobs/python_linux_installers/archive/config.json.bak +0 -10
  323. machineconfig/jobs/python_linux_installers/config.json +0 -145
  324. machineconfig/jobs/python_linux_installers/config.json.bak +0 -110
  325. machineconfig/jobs/python_linux_installers/dev/config.json +0 -276
  326. machineconfig/jobs/python_linux_installers/dev/config.json.bak +0 -206
  327. machineconfig/jobs/python_windows_installers/archive/file.json +0 -11
  328. machineconfig/jobs/python_windows_installers/config.json +0 -82
  329. machineconfig/jobs/python_windows_installers/config.json.bak +0 -56
  330. machineconfig/jobs/python_windows_installers/dev/config.json +0 -4
  331. machineconfig/jobs/python_windows_installers/dev/config.json.bak +0 -3
  332. machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -14
  333. machineconfig/jobs/windows/start_terminal.ps1 +0 -6
  334. machineconfig/jobs/windows/startup_file.cmd +0 -2
  335. machineconfig/profile/create.py +0 -169
  336. machineconfig/profile/shell.py +0 -176
  337. machineconfig/scripts/cloud/init.sh +0 -119
  338. machineconfig/scripts/linux/choose_wezterm_theme +0 -3
  339. machineconfig/scripts/linux/cloud_copy +0 -2
  340. machineconfig/scripts/linux/cloud_mount +0 -2
  341. machineconfig/scripts/linux/cloud_repo_sync +0 -2
  342. machineconfig/scripts/linux/cloud_sync +0 -2
  343. machineconfig/scripts/linux/croshell +0 -3
  344. machineconfig/scripts/linux/devops +0 -2
  345. machineconfig/scripts/linux/fire +0 -2
  346. machineconfig/scripts/linux/fire_agents +0 -2
  347. machineconfig/scripts/linux/ftpx +0 -2
  348. machineconfig/scripts/linux/fzf2g +0 -21
  349. machineconfig/scripts/linux/fzffg +0 -25
  350. machineconfig/scripts/linux/gh_models +0 -2
  351. machineconfig/scripts/linux/kill_process +0 -2
  352. machineconfig/scripts/linux/mcinit +0 -2
  353. machineconfig/scripts/linux/programs +0 -21
  354. machineconfig/scripts/linux/repos +0 -2
  355. machineconfig/scripts/linux/scheduler +0 -2
  356. machineconfig/scripts/linux/share_smb +0 -1
  357. machineconfig/scripts/linux/start_slidev +0 -2
  358. machineconfig/scripts/linux/start_terminals +0 -3
  359. machineconfig/scripts/linux/warp-cli.sh +0 -122
  360. machineconfig/scripts/linux/wifi_conn +0 -2
  361. machineconfig/scripts/linux/z_ls +0 -104
  362. machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
  363. machineconfig/scripts/python/archive/im2text.py +0 -34
  364. machineconfig/scripts/python/archive/tmate_conn.py +0 -41
  365. machineconfig/scripts/python/archive/tmate_start.py +0 -44
  366. machineconfig/scripts/python/cloud_repo_sync.py +0 -192
  367. machineconfig/scripts/python/cloud_sync.py +0 -85
  368. machineconfig/scripts/python/devops_devapps_install.py +0 -202
  369. machineconfig/scripts/python/devops_update_repos.py +0 -180
  370. machineconfig/scripts/python/dotfile.py +0 -52
  371. machineconfig/scripts/python/fire_agents.py +0 -176
  372. machineconfig/scripts/python/fire_agents_help_launch.py +0 -143
  373. machineconfig/scripts/python/fire_agents_load_balancer.py +0 -50
  374. machineconfig/scripts/python/fire_jobs_args_helper.py +0 -84
  375. machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -66
  376. machineconfig/scripts/python/get_zellij_cmd.py +0 -15
  377. machineconfig/scripts/python/gh_models.py +0 -104
  378. machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -114
  379. machineconfig/scripts/python/repos.py +0 -160
  380. machineconfig/scripts/python/snapshot.py +0 -25
  381. machineconfig/scripts/python/start_terminals.py +0 -121
  382. machineconfig/scripts/python/wsl_windows_transfer.py +0 -72
  383. machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -1
  384. machineconfig/scripts/windows/cloud_copy.ps1 +0 -1
  385. machineconfig/scripts/windows/cloud_mount.ps1 +0 -1
  386. machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -1
  387. machineconfig/scripts/windows/cloud_sync.ps1 +0 -1
  388. machineconfig/scripts/windows/croshell.ps1 +0 -1
  389. machineconfig/scripts/windows/devops.ps1 +0 -1
  390. machineconfig/scripts/windows/dotfile.ps1 +0 -1
  391. machineconfig/scripts/windows/fire.ps1 +0 -1
  392. machineconfig/scripts/windows/ftpx.ps1 +0 -1
  393. machineconfig/scripts/windows/gpt.ps1 +0 -1
  394. machineconfig/scripts/windows/grep.ps1 +0 -2
  395. machineconfig/scripts/windows/kill_process.ps1 +0 -1
  396. machineconfig/scripts/windows/mcinit.ps1 +0 -1
  397. machineconfig/scripts/windows/nano.ps1 +0 -3
  398. machineconfig/scripts/windows/pomodoro.ps1 +0 -1
  399. machineconfig/scripts/windows/reload_path.ps1 +0 -3
  400. machineconfig/scripts/windows/repos.ps1 +0 -1
  401. machineconfig/scripts/windows/scheduler.ps1 +0 -1
  402. machineconfig/scripts/windows/snapshot.ps1 +0 -1
  403. machineconfig/scripts/windows/start_slidev.ps1 +0 -1
  404. machineconfig/scripts/windows/start_terminals.ps1 +0 -1
  405. machineconfig/scripts/windows/wifi_conn.ps1 +0 -2
  406. machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -46
  407. machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -76
  408. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  409. machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
  410. machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -93
  411. machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -11
  412. machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -52
  413. machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -18
  414. machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -36
  415. machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -16
  416. machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -11
  417. machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +0 -100
  418. machineconfig/utils/ai/generate_file_checklist.py +0 -68
  419. machineconfig/utils/installer.py +0 -255
  420. machineconfig-3.7.dist-info/METADATA +0 -165
  421. machineconfig-3.7.dist-info/RECORD +0 -432
  422. machineconfig-3.7.dist-info/entry_points.txt +0 -18
  423. machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
  424. machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
  425. machineconfig/cluster/{templates → remote}/run_remote.py +0 -0
  426. machineconfig/jobs/{python → installer}/__init__.py +0 -0
  427. machineconfig/jobs/{python_custom_installers → installer/custom_dev}/__init__.py +0 -0
  428. machineconfig/{setup_windows/wt_and_pwsh → jobs/installer/powershell_scripts}/install_fonts.ps1 +0 -0
  429. machineconfig/scripts/linux/{share_nfs → other/share_nfs} +0 -0
  430. machineconfig/scripts/linux/{start_docker → other/start_docker} +0 -0
  431. machineconfig/scripts/linux/{switch_ip → other/switch_ip} +0 -0
  432. machineconfig/{jobs/python_generic_installers → scripts/python/helpers_agents}/__init__.py +0 -0
  433. machineconfig/{jobs/python_linux_installers → scripts/python/helpers_agents/agentic_frameworks}/__init__.py +0 -0
  434. machineconfig/scripts/python/{fire_agents_help_search.py → helpers_agents/fire_agents_help_search.py} +0 -0
  435. machineconfig/{jobs/python_linux_installers/dev → scripts/python/helpers_cloud}/__init__.py +0 -0
  436. machineconfig/scripts/python/{helpers → helpers_cloud}/cloud_helpers.py +1 -1
  437. /machineconfig/scripts/python/{helpers → helpers_cloud}/helpers5.py +0 -0
  438. /machineconfig/{jobs/python_windows_installers → scripts/python/helpers_croshell}/__init__.py +0 -0
  439. /machineconfig/scripts/python/{pomodoro.py → helpers_croshell/pomodoro.py} +0 -0
  440. /machineconfig/scripts/python/{viewer.py → helpers_croshell/viewer.py} +0 -0
  441. /machineconfig/scripts/python/{viewer_template.py → helpers_croshell/viewer_template.py} +0 -0
  442. /machineconfig/{jobs/python_windows_installers/archive → scripts/python/helpers_devops}/__init__.py +0 -0
  443. /machineconfig/{jobs/python_windows_installers/dev → scripts/python/helpers_devops/themes}/__init__.py +0 -0
  444. /machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
  445. /machineconfig/scripts/python/{helpers → helpers_fire_command}/__init__.py +0 -0
  446. /machineconfig/scripts/python/{fire_jobs_streamlit_helper.py → helpers_fire_command/fire_jobs_streamlit_helper.py} +0 -0
  447. /machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/skrg +0 -0
  448. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfb.ps1 +0 -0
  449. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfg.ps1 +0 -0
  450. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfrga.bat +0 -0
  451. /machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_sessions/__init__.py} +0 -0
  452. /machineconfig/scripts/{windows/share_nfs.ps1 → python/nw/__init__.py} +0 -0
  453. /machineconfig/scripts/{linux → python/nw}/mount_drive +0 -0
  454. /machineconfig/scripts/python/{mount_nw_drive.py → nw/mount_nw_drive.py} +0 -0
  455. /machineconfig/scripts/{linux → python/nw}/mount_smb +0 -0
  456. /machineconfig/scripts/windows/{mount_nw.ps1 → mounts/mount_nw.ps1} +0 -0
  457. /machineconfig/scripts/windows/{mount_smb.ps1 → mounts/mount_smb.ps1} +0 -0
  458. /machineconfig/scripts/windows/{share_cloud.cmd → mounts/share_cloud.cmd} +0 -0
  459. /machineconfig/scripts/windows/{unlock_bitlocker.ps1 → mounts/unlock_bitlocker.ps1} +0 -0
  460. /machineconfig/setup_linux/{web_shortcuts → others}/android.sh +0 -0
  461. /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
  462. /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
  463. /machineconfig/{settings/yazi/keymap.toml → utils/files/ouch/__init__.py} +0 -0
  464. {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/WHEEL +0 -0
  465. {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,111 @@
1
+ """Nerd Fonts installer - Cross-platform font installation"""
2
+
3
+ import platform
4
+ import subprocess
5
+ from typing import Optional
6
+ from rich import box
7
+ from rich.console import Console
8
+ from rich.panel import Panel
9
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
10
+
11
+
12
+ def main(installer_data: InstallerData, version: Optional[str]) -> None:
13
+ """Main entry point for Nerd Fonts installation.
14
+
15
+ Args:
16
+ installer_data: Installation configuration data
17
+ version: Specific version to install (None for latest)
18
+ """
19
+ console = Console()
20
+ _ = installer_data
21
+ console.print(
22
+ Panel.fit(
23
+ "\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
24
+ title="🔤 Nerd Fonts Installer",
25
+ border_style="blue",
26
+ box=box.ROUNDED,
27
+ )
28
+ )
29
+
30
+ _ = version
31
+ current_platform = platform.system()
32
+
33
+ if current_platform == "Windows":
34
+ console.print("🪟 Installing Nerd Fonts on Windows...", style="bold")
35
+ from machineconfig.jobs.installer.custom_dev.nerfont_windows_helper import install_nerd_fonts
36
+
37
+ try:
38
+ install_nerd_fonts()
39
+ console.print(
40
+ Panel.fit(
41
+ "\n".join(["💡 Restart terminal applications to see the new fonts."]),
42
+ title="✅ Nerd Fonts Installed",
43
+ border_style="green",
44
+ box=box.ROUNDED,
45
+ )
46
+ )
47
+ except Exception as e: # noqa: BLE001
48
+ error_msg = f"Windows Nerd Fonts installation failed: {e}"
49
+ console.print(
50
+ Panel.fit(
51
+ "\n".join(
52
+ [
53
+ error_msg,
54
+ "💡 Try running as administrator or install manually from https://www.nerdfonts.com",
55
+ ]
56
+ ),
57
+ title="❌ Error",
58
+ subtitle="⚠️ Installation issue",
59
+ border_style="red",
60
+ box=box.ROUNDED,
61
+ )
62
+ )
63
+ raise RuntimeError(error_msg) from e
64
+
65
+ elif current_platform in ["Linux", "Darwin"]:
66
+ console.print(f"🐧 Installing Nerd Fonts on {current_platform} using installation script...", style="bold")
67
+ import machineconfig.jobs.installer as module
68
+ from pathlib import Path
69
+
70
+ program = Path(module.__file__).parent.joinpath("linux_scripts/nerdfont.sh").read_text(encoding="utf-8")
71
+
72
+ console.print(
73
+ Panel.fit(
74
+ "\n".join(
75
+ [
76
+ "🎨 Programming fonts patched with icons",
77
+ "🔣 Includes icons from popular sets (FontAwesome, Devicons, etc.)",
78
+ "🖥️ Perfect for terminals and coding environments",
79
+ "🧰 Works with many terminal applications and editors",
80
+ ]
81
+ ),
82
+ title="ℹ️ Nerd Fonts Features",
83
+ border_style="magenta",
84
+ box=box.ROUNDED,
85
+ )
86
+ )
87
+
88
+ console.print("🔄 EXECUTING | Running Nerd Fonts installation...", style="bold yellow")
89
+ try:
90
+ subprocess.run(program, shell=True, text=True, check=True)
91
+ console.print("✅ Nerd Fonts installation completed successfully", style="bold green")
92
+ except subprocess.CalledProcessError as e:
93
+ console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
94
+ raise
95
+
96
+ else:
97
+ error_msg = f"Unsupported platform: {current_platform}"
98
+ console.print(
99
+ Panel.fit(
100
+ "\n".join([error_msg, "💡 Supported platforms are Windows, Linux, and macOS (Darwin)"]),
101
+ title="❌ Error",
102
+ subtitle="⚠️ Unsupported platform",
103
+ border_style="red",
104
+ box=box.ROUNDED,
105
+ )
106
+ )
107
+ raise NotImplementedError(error_msg)
108
+
109
+
110
+ if __name__ == "__main__":
111
+ pass
@@ -0,0 +1,149 @@
1
+ """
2
+ Windows-specific Nerd Fonts installation helper module.
3
+
4
+ This module provides Windows-specific functionality for installing Nerd Fonts
5
+ using PowerShell scripts and font enumeration.
6
+ """
7
+
8
+ import subprocess
9
+ from typing import Iterable
10
+
11
+ from rich import box
12
+ from rich.console import Console
13
+ from rich.panel import Panel
14
+
15
+ from machineconfig.utils.path_extended import PathExtended
16
+ from machineconfig.utils.source_of_truth import LIBRARY_ROOT
17
+ from machineconfig.utils.installer_utils.installer_class import Installer
18
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
19
+
20
+
21
+ nerd_fonts: InstallerData = {
22
+ "appName": "Cascadia Code Nerd Font",
23
+ "repoURL": "https://github.com/ryanoasis/nerd-fonts",
24
+ "doc": "Nerd Fonts is a project that patches developer targeted fonts with a high number of glyphs (icons)",
25
+ "fileNamePattern": {
26
+ "amd64": {
27
+ "windows": "CascadiaCode.zip",
28
+ "linux": "CascadiaCode.zip",
29
+ "macos": "CascadiaCode.zip",
30
+ },
31
+ "arm64": {
32
+ "windows": "CascadiaCode.zip",
33
+ "linux": "CascadiaCode.zip",
34
+ "macos": "CascadiaCode.zip",
35
+ }
36
+ }
37
+ }
38
+
39
+
40
+ console = Console()
41
+
42
+
43
+ def render_banner(message: str, title: str, border_style: str, box_style: box.Box) -> None:
44
+ console.print(Panel.fit(message, title=title, border_style=border_style, box=box_style, padding=(1, 4)))
45
+
46
+
47
+ def _list_installed_fonts() -> list[str]:
48
+ """Return list of installed font file base names (without extension) on Windows.
49
+
50
+ Uses PowerShell to enumerate C:\\Windows\\Fonts because Python on *nix host can't rely on that path.
51
+ If PowerShell call fails (e.g. running on non-Windows), returns empty list so install proceeds.
52
+
53
+ Returns:
54
+ List of installed font base names
55
+ """
56
+ try:
57
+ # Query only base names to make substring matching simpler; remove underscores like the PS script does.
58
+ cmd = [
59
+ "powershell.exe",
60
+ "-NoLogo",
61
+ "-NonInteractive",
62
+ "-Command",
63
+ "Get-ChildItem -Path C:/Windows/Fonts -File | Select-Object -ExpandProperty BaseName"
64
+ ]
65
+ res = subprocess.run(cmd, capture_output=True, text=True, check=True) # noqa: S603 S607 (trusted command)
66
+ fonts = [x.strip().replace("_", "") for x in res.stdout.splitlines() if x.strip() != ""]
67
+ return fonts
68
+ except Exception as exc: # noqa: BLE001
69
+ console.print(f"⚠️ Could not enumerate installed fonts (continuing with install). Reason: {exc}")
70
+ return []
71
+
72
+
73
+ def _missing_required_fonts(installed_fonts: Iterable[str]) -> list[str]:
74
+ """Check which required font patterns are missing from installed fonts.
75
+
76
+ Args:
77
+ installed_fonts: List of installed font names
78
+
79
+ Returns:
80
+ List of missing font patterns
81
+ """
82
+ import re
83
+
84
+ installed_norm = [f.lower().replace(" ", "") for f in installed_fonts]
85
+ missing: list[str] = []
86
+ for pattern in ["cascadiacode*"]:
87
+ regex = re.compile(pattern)
88
+ if not any(regex.search(f) for f in installed_norm):
89
+ missing.append(pattern)
90
+ return missing
91
+
92
+
93
+ def install_nerd_fonts() -> None:
94
+ """Install Nerd Fonts on Windows using PowerShell script.
95
+
96
+ This function:
97
+ 1. Checks if required fonts are already installed
98
+ 2. Downloads the font package if needed
99
+ 3. Installs fonts using PowerShell script
100
+ 4. Cleans up temporary files
101
+
102
+ Raises:
103
+ subprocess.CalledProcessError: If PowerShell installation fails
104
+ """
105
+ console.print()
106
+ render_banner("📦 INSTALLING NERD FONTS 📦", "Nerd Fonts Installer", "magenta", box.DOUBLE)
107
+ console.print()
108
+
109
+ installed = _list_installed_fonts()
110
+ missing = _missing_required_fonts(installed)
111
+
112
+ if len(missing) == 0:
113
+ console.print("✅ Required Nerd Fonts already installed. Skipping download & install.")
114
+ return
115
+
116
+ console.print(f"🔍 Missing fonts detected: {', '.join(missing)}. Proceeding with installation...")
117
+ console.print("🔍 Downloading Nerd Fonts package...")
118
+
119
+ folder, _version_to_be_installed = Installer(installer_data=nerd_fonts).binary_download(version=None)
120
+
121
+ console.print("🧹 Cleaning up unnecessary files...")
122
+ [p.delete(sure=True) for p in folder.search("*Windows*")]
123
+ [p.delete(sure=True) for p in folder.search("*readme*")]
124
+ [p.delete(sure=True) for p in folder.search("*LICENSE*")]
125
+
126
+ console.print("⚙️ Installing fonts via PowerShell...")
127
+ file = PathExtended.tmpfile(suffix=".ps1")
128
+ file.parent.mkdir(parents=True, exist_ok=True)
129
+
130
+ raw_content = LIBRARY_ROOT.joinpath("jobs/installer/pwsh_scripts/install_fonts.ps1").read_text(encoding="utf-8").replace(r".\fonts-to-be-installed", str(folder))
131
+ # PowerShell 5.1 can choke on certain unicode chars in some locales; keep ASCII only.
132
+ content = "".join(ch for ch in raw_content if ord(ch) < 128)
133
+ file.write_text(content, encoding="utf-8")
134
+
135
+ try:
136
+ subprocess.run(rf"powershell.exe -executionpolicy Bypass -nologo -noninteractive -File {str(file)}", check=True)
137
+ except subprocess.CalledProcessError as cpe:
138
+ console.print(f"💥 Font installation script failed: {cpe}")
139
+ raise
140
+ finally:
141
+ console.print("🗑️ Cleaning up temporary files...")
142
+ if folder.exists():
143
+ folder.delete(sure=True)
144
+ if file.exists():
145
+ file.delete(sure=True)
146
+
147
+ console.print()
148
+ render_banner("✅ Nerd Fonts installation complete! ✅", "Nerd Fonts Installer", "green", box.DOUBLE)
149
+ console.print()
@@ -0,0 +1,88 @@
1
+ """nedis installer"""
2
+
3
+ import platform
4
+ import subprocess
5
+ from typing import Optional
6
+ from rich import box
7
+ from rich.console import Console
8
+ from rich.panel import Panel
9
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
10
+
11
+ # config_dict: InstallerData = {"appName": "Redis", "repoURL": "CMD", "doc": "submillisecond fast key-value db"}
12
+
13
+
14
+ def main(installer_data: InstallerData, version: Optional[str]) -> None:
15
+ console = Console()
16
+ _ = installer_data
17
+ console.print(
18
+ Panel.fit(
19
+ "\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
20
+ title="🗃️ Redis Installer",
21
+ border_style="red",
22
+ box=box.ROUNDED,
23
+ )
24
+ )
25
+
26
+ _ = version
27
+ if platform.system() == "Windows":
28
+ error_msg = "Redis installation not supported on Windows through this installer"
29
+ console.print(
30
+ Panel.fit(
31
+ "\n".join([error_msg, "💡 Consider using WSL2 or Docker to run Redis on Windows"]),
32
+ title="❌ Error",
33
+ subtitle="⚠️ Unsupported platform",
34
+ border_style="red",
35
+ box=box.ROUNDED,
36
+ )
37
+ )
38
+ raise NotImplementedError(error_msg)
39
+ elif platform.system() in ["Linux", "Darwin"]:
40
+ system_name = "Linux" if platform.system() == "Linux" else "macOS"
41
+ console.print(f"🐧 Installing Redis on {system_name} using installation script...", style="bold")
42
+ import machineconfig.jobs.installer as module
43
+ from pathlib import Path
44
+ if platform.system() == "Linux":
45
+ program = Path(module.__file__).parent.joinpath("linux_scripts/redis.sh").read_text(encoding="utf-8")
46
+ else: # Darwin/macOS
47
+ program = "brew install redis"
48
+ else:
49
+ error_msg = f"Unsupported platform: {platform.system()}"
50
+ console.print(
51
+ Panel.fit(
52
+ "\n".join([error_msg]),
53
+ title="❌ Error",
54
+ subtitle="⚠️ Unsupported platform",
55
+ border_style="red",
56
+ box=box.ROUNDED,
57
+ )
58
+ )
59
+ raise NotImplementedError(error_msg)
60
+
61
+ console.print(
62
+ Panel.fit(
63
+ "\n".join(
64
+ [
65
+ "⚡ In-memory data structure store",
66
+ "🔑 Key-value database with optional persistence",
67
+ "🚀 Sub-millisecond response times",
68
+ "💾 Supports strings, lists, sets, sorted sets, hashes",
69
+ "🔄 Built-in replication and Lua scripting",
70
+ ]
71
+ ),
72
+ title="ℹ️ Redis Features",
73
+ border_style="magenta",
74
+ box=box.ROUNDED,
75
+ )
76
+ )
77
+
78
+ console.print("🔄 EXECUTING | Running Redis installation...", style="bold yellow")
79
+ try:
80
+ subprocess.run(program, shell=True, text=True, check=True)
81
+ console.print("✅ Redis installation completed successfully", style="bold green")
82
+ except subprocess.CalledProcessError as e:
83
+ console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
84
+ raise
85
+
86
+
87
+ if __name__ == "__main__":
88
+ pass
@@ -0,0 +1,145 @@
1
+
2
+
3
+ import platform
4
+ from typing import Optional
5
+ from rich import box
6
+ from rich.console import Console
7
+ from rich.panel import Panel
8
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
9
+
10
+
11
+ """
12
+ {
13
+ "appName": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
14
+ "repoURL": "https://github.com/microsoft/winget-cli",
15
+ "doc": "📦 Windows Package Manager CLI",
16
+ "fileNamePattern": {
17
+ "amd64": {
18
+ "linux": null,
19
+ "windows": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
20
+ "macos": null
21
+ },
22
+ "arm64": {
23
+ "linux": null,
24
+ "windows": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
25
+ "macos": null
26
+ }
27
+ }
28
+
29
+ """
30
+
31
+ ps1 = r"""
32
+
33
+ # if windows is missing
34
+ # download latest from cd $HOME/Downloads; d u "https://github.com/microsoft/winget-cli/releases/download/v1.12.170-preview/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
35
+ # this must be run in windows powershell, not in pwsh
36
+ # Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
37
+
38
+ winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
39
+ winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user --accept-package-agreements --accept-source-agreements # Terminal is is installed by default on W 11
40
+ winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
41
+ # --GROUP:gui:Brave+VSCode+Git+WezTerm
42
+ # --GROUP:dev2:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
43
+ # --GROUP:user:nu+Chrome+ChromeRemoteDesktop+Zoom+7zip+Firefox+Thunderbird+StreamlabsOBS+OBSStudio+MiKTeX+TexMaker+notepad+++Lapce+TesseractOCR+perl+DB Browser for SQLite+sql server management studio+Adobe Acrobat Reader DC+julia+Chafa+bottom+onefetch+Just+hyperfine+AWS CLI
44
+ # Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
45
+ # Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
46
+
47
+ """
48
+
49
+ zsh = r"""
50
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
51
+ echo "🔄 Updating Homebrew..."
52
+ brew update || true
53
+ echo "📥 Installing essential tools..."
54
+ echo "📥 Installing Git version control..."
55
+ echo "📥 Installing Nano text editor..."
56
+ echo "📥 Installing Node Version Manager (NVM)..."
57
+ # Note: git and nano are pre-installed on macOS, but we install via Homebrew to ensure latest versions
58
+ # brew install git || true
59
+ # brew install nano || true
60
+ # brew install curl || true
61
+ # Install NVM
62
+ if [ ! -s "$HOME/.nvm/nvm.sh" ]; then
63
+ echo "📥 Installing NVM (Node Version Manager)..."
64
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
65
+ fi
66
+ echo "🔧 Configuring NVM environment..."
67
+ export NVM_DIR="$HOME/.nvm"
68
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
69
+ echo "📥 Installing latest Node.js..."
70
+ nvm install node || true
71
+ # brew install make
72
+ # brew install ffmpeg
73
+ # brew install openssl
74
+ echo "✅ Essential tools installation complete."
75
+ """
76
+
77
+ bash = r"""
78
+ sudo apt update -y || true
79
+ sudo apt install nala -y || true
80
+ sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
81
+ sudo nala install git net-tools htop nano -y || true
82
+ sudo nala install build-essential python3-dev -y || true # C build toolchain: Where build-essential brings gcc, make, etc., and python3-dev ensures headers for your Python version.
83
+ # sudo nala install libssl-dev -y
84
+ # sudo nala install libaa-bin -y
85
+
86
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
87
+ echo "🔧 Configuring NVM environment..."
88
+ export NVM_DIR="$HOME/.nvm"
89
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
90
+ echo "📥 Installing latest Node.js..."
91
+ nvm install node || true
92
+
93
+ sudo nala install samba
94
+ sudo nala install fuse3 -y || true
95
+ sudo nala install nfs-common -y || true
96
+
97
+ # echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
98
+ # echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
99
+ # sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
100
+ # sudo nala install hollywood -y || true
101
+
102
+ # sudo nala install ffmpeg -y || true # Required by some dev tools
103
+ # sudo nala install make -y || true # Required by LunarVim and SpaceVim
104
+ # (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
105
+
106
+ """
107
+
108
+
109
+ def main(installer_data: InstallerData, version: Optional[str]) -> None:
110
+ console = Console()
111
+ _ = installer_data
112
+ console.print(
113
+ Panel.fit(
114
+ "\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
115
+ title="🔧 ABC Installer",
116
+ border_style="blue",
117
+ box=box.ROUNDED,
118
+ )
119
+ )
120
+
121
+ _ = version
122
+ if platform.system() == "Windows":
123
+ console.print("🪟 Installing ABC on Windows using winget...", style="bold")
124
+ program = ps1
125
+ elif platform.system() == "Linux":
126
+ console.print("🐧 Installing ABC on Linux...", style="bold")
127
+ program = bash
128
+ elif platform.system() == "Darwin":
129
+ console.print("🍎 Installing ABC on macOS...", style="bold")
130
+ program = zsh
131
+ else:
132
+ error_msg = f"Unsupported platform: {platform.system()}"
133
+ console.print(
134
+ Panel.fit(
135
+ "\n".join([error_msg]),
136
+ title="❌ Error",
137
+ subtitle="⚠️ Unsupported platform",
138
+ border_style="red",
139
+ box=box.ROUNDED,
140
+ )
141
+ )
142
+ raise NotImplementedError(error_msg)
143
+ from machineconfig.utils.code import print_code, run_shell_script
144
+ print_code(code=program, lexer="shell", desc="Installation Script Preview")
145
+ run_shell_script(program)
@@ -0,0 +1,92 @@
1
+ """wezterm installer"""
2
+
3
+ import platform
4
+ import subprocess
5
+ from typing import Optional
6
+
7
+ from rich.console import Console
8
+ from rich.panel import Panel
9
+
10
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
11
+
12
+ console = Console()
13
+
14
+
15
+ def main(installer_data: InstallerData, version: Optional[str]):
16
+ _ = installer_data
17
+ console.print(
18
+ Panel.fit(
19
+ "\n".join(
20
+ [
21
+ "🖥️ WEZTERM INSTALLER | Modern, GPU-accelerated terminal emulator",
22
+ f"💻 Platform: {platform.system()}",
23
+ f"🔄 Version: {version or 'latest'}",
24
+ ]
25
+ ),
26
+ title="WezTerm Setup",
27
+ border_style="magenta",
28
+ padding=(1, 2),
29
+ )
30
+ )
31
+
32
+ _ = version
33
+ if platform.system() == "Windows":
34
+ program = """winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --accept-package-agreements --accept-source-agreements
35
+ """
36
+ elif platform.system() in ["Linux", "Darwin"]:
37
+ system_name = "LINUX" if platform.system() == "Linux" else "MACOS"
38
+ console.print(
39
+ Panel.fit(
40
+ f"🐧 {system_name} SETUP | Installing WezTerm terminal emulator...",
41
+ title="Platform Setup",
42
+ border_style="cyan",
43
+ )
44
+ )
45
+ import machineconfig.jobs.installer as module
46
+ from pathlib import Path
47
+
48
+ if platform.system() == "Linux":
49
+ program = Path(module.__file__).parent.joinpath("linux_scripts/wezterm.sh").read_text(encoding="utf-8")
50
+ else: # Darwin/macOS
51
+ program = "brew install --cask wezterm"
52
+ else:
53
+ error_msg = f"Unsupported platform: {platform.system()}"
54
+ console.print(
55
+ Panel.fit(
56
+ f"❌ ERROR | {error_msg}",
57
+ title="Unsupported Platform",
58
+ border_style="red",
59
+ )
60
+ )
61
+ raise NotImplementedError(error_msg)
62
+
63
+ console.print(
64
+ Panel(
65
+ "\n".join(
66
+ [
67
+ "ℹ️ INFO | WezTerm Features:",
68
+ "⚡ GPU-accelerated rendering",
69
+ "🎨 Full color emoji support",
70
+ "🧩 Multiplexing with panes and tabs",
71
+ "⚙️ Lua configuration",
72
+ "📦 Cross-platform support",
73
+ "🔌 Plugin system",
74
+ ]
75
+ ),
76
+ title="Why WezTerm?",
77
+ border_style="magenta",
78
+ padding=(1, 2),
79
+ )
80
+ )
81
+
82
+ console.print("[bold]🔄 EXECUTING | Running WezTerm installation...[/bold]")
83
+ try:
84
+ subprocess.run(program, shell=True, text=True, check=True)
85
+ console.print("[green]✅ WezTerm installation completed successfully[/green]")
86
+ except subprocess.CalledProcessError as e:
87
+ console.print(f"❌ [red]Installation failed with exit code {e.returncode}[/red]")
88
+ raise
89
+
90
+
91
+ if __name__ == "__main__":
92
+ pass
@@ -3,10 +3,10 @@ import requests
3
3
  import tempfile
4
4
  from pathlib import Path
5
5
  from typing import Optional
6
- from machineconfig.utils.schemas.installer.installer_types import InstallerData
7
6
 
8
7
 
9
- config_dict: InstallerData = {"appName": "winget", "repoURL": "CUSTOM", "doc": "winget installer", "filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}}, "stripVersion": False, "exeName": "winget"}
8
+ # config_dict: InstallerData = {"appName": "winget", "repoURL": "CMD", "doc": "winget installer"}
9
+ # on older windows, use this to get winget for first time: Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe as per https://learn.microsoft.com/en-us/windows/package-manager/winget/
10
10
 
11
11
 
12
12
  def is_winget_available() -> bool:
@@ -93,7 +93,6 @@ def install_msix_package(package_path: Path) -> bool:
93
93
 
94
94
  result = subprocess.run(
95
95
  powershell_cmd,
96
- capture_output=True,
97
96
  text=True,
98
97
  timeout=300, # 5 minutes timeout
99
98
  )