machineconfig 7.50__py3-none-any.whl → 8.12__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 (298) hide show
  1. machineconfig/cluster/remote/cloud_manager.py +1 -1
  2. machineconfig/cluster/sessions_managers/utils/maker.py +23 -11
  3. machineconfig/cluster/sessions_managers/wt_local_manager.py +22 -19
  4. machineconfig/cluster/sessions_managers/wt_remote_manager.py +3 -1
  5. machineconfig/cluster/sessions_managers/zellij_local_manager.py +3 -1
  6. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
  7. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
  8. machineconfig/jobs/installer/installer_data.json +1185 -165
  9. machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
  10. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  11. machineconfig/jobs/installer/package_groups.py +52 -84
  12. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  13. machineconfig/jobs/installer/{custom → python_scripts}/boxes.py +2 -2
  14. machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +5 -3
  15. machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +23 -0
  16. machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +4 -1
  17. machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +1 -1
  18. machineconfig/jobs/installer/{custom → python_scripts}/hx.py +16 -12
  19. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +2 -2
  20. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +27 -22
  21. machineconfig/jobs/installer/python_scripts/sysabc.py +139 -0
  22. machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +2 -19
  23. machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +10 -14
  24. machineconfig/jobs/installer/python_scripts/yazi.py +121 -0
  25. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nfs +0 -1
  26. machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +13 -0
  27. machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +4 -0
  28. machineconfig/jobs/scripts_dynamic/a.py +25 -0
  29. machineconfig/logger.py +0 -1
  30. machineconfig/profile/create_helper.py +21 -22
  31. machineconfig/profile/create_links_export.py +25 -11
  32. machineconfig/profile/create_shell_profile.py +14 -3
  33. machineconfig/profile/mapper.toml +8 -6
  34. machineconfig/scripts/__init__.py +0 -4
  35. machineconfig/scripts/linux/wrap_mcfg +20 -21
  36. machineconfig/scripts/python/agents.py +74 -50
  37. machineconfig/scripts/python/ai/initai.py +1 -1
  38. machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
  39. machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
  40. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +1 -1
  41. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
  42. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
  43. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
  44. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
  45. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
  46. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
  47. machineconfig/scripts/python/ai/solutions/generic.py +1 -1
  48. machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
  49. machineconfig/scripts/python/cloud.py +6 -6
  50. machineconfig/scripts/python/croshell.py +67 -60
  51. machineconfig/scripts/python/devops.py +41 -21
  52. machineconfig/scripts/python/devops_navigator.py +0 -4
  53. machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
  54. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  55. machineconfig/scripts/python/fire_jobs.py +95 -67
  56. machineconfig/scripts/python/ftpx.py +44 -17
  57. machineconfig/scripts/python/helpers/ast_search.py +74 -0
  58. machineconfig/scripts/python/helpers/qr_code.py +166 -0
  59. machineconfig/scripts/python/helpers/repo_rag.py +325 -0
  60. machineconfig/scripts/python/helpers/symantic_search.py +25 -0
  61. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +1 -1
  62. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +9 -7
  63. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +21 -8
  64. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +0 -12
  65. machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +30 -11
  66. machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +9 -2
  67. machineconfig/scripts/python/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
  68. machineconfig/scripts/python/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
  69. machineconfig/scripts/python/helpers_agents/privacy/configs/copilot/config.yml +1 -0
  70. machineconfig/scripts/python/helpers_agents/privacy/configs/crush/crush.json +10 -0
  71. machineconfig/scripts/python/helpers_agents/privacy/configs/gemini/settings.json +12 -0
  72. machineconfig/scripts/python/helpers_agents/privacy/privacy.py +109 -0
  73. machineconfig/scripts/python/helpers_agents/templates/prompt.txt +8 -4
  74. machineconfig/scripts/python/helpers_agents/templates/template.sh +18 -8
  75. machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
  76. machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
  77. machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
  78. machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
  79. machineconfig/scripts/python/helpers_croshell/crosh.py +3 -3
  80. machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
  81. machineconfig/scripts/python/helpers_devops/cli_config.py +19 -25
  82. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +22 -13
  83. machineconfig/scripts/python/helpers_devops/cli_nw.py +113 -26
  84. machineconfig/scripts/python/helpers_devops/cli_repos.py +37 -11
  85. machineconfig/scripts/python/helpers_devops/cli_self.py +84 -39
  86. machineconfig/scripts/python/helpers_devops/cli_share_file.py +9 -9
  87. machineconfig/scripts/python/helpers_devops/cli_share_server.py +13 -12
  88. machineconfig/scripts/python/helpers_devops/{cli_terminal.py → cli_share_terminal.py} +15 -17
  89. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +4 -4
  90. machineconfig/scripts/python/helpers_devops/devops_status.py +7 -19
  91. machineconfig/scripts/python/helpers_devops/run_script.py +168 -0
  92. machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +1 -1
  93. machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +2 -19
  94. machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +1 -0
  95. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +25 -15
  96. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +3 -3
  97. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +58 -1
  98. machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
  99. machineconfig/scripts/python/helpers_network/address.py +176 -0
  100. machineconfig/scripts/python/helpers_network/address_switch.py +78 -0
  101. machineconfig/scripts/python/{nw → helpers_network}/mount_nfs.py +2 -2
  102. machineconfig/scripts/python/{nw → helpers_network}/mount_ssh.py +1 -1
  103. machineconfig/scripts/python/{nw/devops_add_identity.py → helpers_network/ssh_add_identity.py} +35 -1
  104. machineconfig/scripts/python/{nw/devops_add_ssh_key.py → helpers_network/ssh_add_ssh_key.py} +26 -7
  105. machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_linux.py +7 -7
  106. machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
  107. machineconfig/scripts/python/helpers_repos/clone.py +0 -1
  108. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +13 -5
  109. machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
  110. machineconfig/scripts/python/helpers_repos/record.py +2 -1
  111. machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
  112. machineconfig/scripts/python/helpers_repos/{count_lines.py → repo_analyzer_2.py} +113 -192
  113. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +19 -13
  114. machineconfig/scripts/python/helpers_utils/download.py +150 -0
  115. machineconfig/scripts/python/helpers_utils/pdf.py +96 -0
  116. machineconfig/scripts/python/helpers_utils/python.py +187 -0
  117. machineconfig/scripts/python/interactive.py +17 -26
  118. machineconfig/scripts/python/{machineconfig.py → mcfg_entry.py} +4 -5
  119. machineconfig/scripts/python/msearch.py +57 -6
  120. machineconfig/scripts/python/sessions.py +100 -31
  121. machineconfig/scripts/python/terminal.py +26 -17
  122. machineconfig/scripts/python/utils.py +17 -15
  123. machineconfig/scripts/windows/wrap_mcfg.ps1 +6 -3
  124. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  125. machineconfig/settings/linters/.ruff.toml +1 -1
  126. machineconfig/settings/shells/bash/init.sh +29 -2
  127. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
  128. machineconfig/settings/shells/nushell/config.nu +2 -2
  129. machineconfig/settings/shells/nushell/env.nu +45 -6
  130. machineconfig/settings/shells/nushell/init.nu +282 -95
  131. machineconfig/settings/shells/pwsh/init.ps1 +1 -0
  132. machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
  133. machineconfig/settings/shells/zsh/init.sh +1 -8
  134. machineconfig/settings/television/cable_unix/alias.toml +8 -0
  135. machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
  136. machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
  137. machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
  138. machineconfig/settings/television/cable_unix/channels.toml +19 -0
  139. machineconfig/settings/television/cable_unix/dirs.toml +13 -0
  140. machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
  141. machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
  142. machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
  143. machineconfig/settings/television/cable_unix/env.toml +17 -0
  144. machineconfig/settings/television/cable_unix/files.toml +11 -0
  145. machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
  146. machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
  147. machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
  148. machineconfig/settings/television/cable_unix/git-log.toml +12 -0
  149. machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
  150. machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
  151. machineconfig/settings/television/cable_unix/guix.toml +20 -0
  152. machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
  153. machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
  154. machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
  155. machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
  156. machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
  157. machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
  158. machineconfig/settings/television/cable_unix/procs.toml +20 -0
  159. machineconfig/settings/television/cable_unix/text.toml +17 -0
  160. machineconfig/settings/television/cable_unix/tldr.toml +18 -0
  161. machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
  162. machineconfig/settings/television/cable_windows/alias.toml +7 -0
  163. machineconfig/settings/television/cable_windows/dirs.toml +13 -0
  164. machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
  165. machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
  166. machineconfig/settings/television/cable_windows/env.toml +17 -0
  167. machineconfig/settings/television/cable_windows/files.toml +14 -0
  168. machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
  169. machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
  170. machineconfig/settings/television/cable_windows/git-log.toml +11 -0
  171. machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
  172. machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
  173. machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
  174. machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
  175. machineconfig/settings/television/cable_windows/text.toml +17 -0
  176. machineconfig/settings/wt/__init__.py +0 -0
  177. machineconfig/settings/yazi/init.lua +49 -24
  178. machineconfig/settings/yazi/keymap_linux.toml +19 -4
  179. machineconfig/settings/yazi/keymap_windows.toml +0 -1
  180. machineconfig/settings/yazi/shell/yazi_cd.ps1 +29 -5
  181. machineconfig/settings/yazi/theme.toml +4 -0
  182. machineconfig/settings/yazi/yazi_linux.toml +84 -0
  183. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  184. machineconfig/settings/zellij/layouts/st.kdl +39 -8
  185. machineconfig/setup_linux/__init__.py +1 -2
  186. machineconfig/setup_linux/apps_desktop.sh +8 -27
  187. machineconfig/setup_linux/web_shortcuts/interactive.sh +12 -10
  188. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
  189. machineconfig/setup_mac/__init__.py +2 -3
  190. machineconfig/setup_windows/__init__.py +3 -5
  191. machineconfig/setup_windows/ssh/openssh-server.ps1 +1 -1
  192. machineconfig/setup_windows/uv.ps1 +8 -1
  193. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +12 -10
  194. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
  195. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  196. machineconfig/utils/accessories.py +7 -4
  197. machineconfig/utils/code.py +39 -11
  198. machineconfig/utils/files/headers.py +2 -2
  199. machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
  200. machineconfig/utils/installer_utils/install_from_url.py +183 -0
  201. machineconfig/utils/installer_utils/installer_class.py +43 -100
  202. machineconfig/utils/installer_utils/installer_cli.py +175 -0
  203. machineconfig/utils/installer_utils/installer_helper.py +129 -0
  204. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +36 -85
  205. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +16 -59
  206. machineconfig/utils/io.py +0 -1
  207. machineconfig/utils/links.py +2 -2
  208. machineconfig/utils/meta.py +30 -16
  209. machineconfig/utils/options.py +42 -24
  210. machineconfig/utils/options_tv.py +119 -0
  211. machineconfig/utils/path_extended.py +42 -20
  212. machineconfig/utils/path_helper.py +75 -22
  213. machineconfig/utils/procs.py +1 -1
  214. machineconfig/utils/scheduler.py +20 -53
  215. machineconfig/utils/schemas/layouts/layout_types.py +1 -1
  216. machineconfig/utils/ssh.py +159 -418
  217. machineconfig/utils/ssh_utils/abc.py +5 -0
  218. machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
  219. machineconfig/utils/ssh_utils/copy_to_here.py +303 -0
  220. machineconfig/utils/ssh_utils/utils.py +142 -0
  221. machineconfig/utils/ssh_utils/wsl.py +210 -0
  222. machineconfig/utils/terminal.py +1 -0
  223. machineconfig/utils/upgrade_packages.py +6 -1
  224. machineconfig/utils/ve.py +12 -4
  225. machineconfig-8.12.dist-info/METADATA +132 -0
  226. {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/RECORD +265 -215
  227. {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/entry_points.txt +2 -4
  228. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
  229. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  230. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  231. machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -7
  232. machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -14
  233. machineconfig/scripts/linux/other/switch_ip +0 -20
  234. machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
  235. machineconfig/scripts/python/define.py +0 -31
  236. machineconfig/scripts/python/explore.py +0 -49
  237. machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -246
  238. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -17
  239. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -21
  240. machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -4
  241. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -3
  242. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -20
  243. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
  244. machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
  245. machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
  246. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
  247. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  248. machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
  249. machineconfig/settings/lf/windows/tst.ps1 +0 -1
  250. machineconfig/settings/yazi/yazi.toml +0 -17
  251. machineconfig/setup_linux/apps.sh +0 -66
  252. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  253. machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
  254. machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
  255. machineconfig/setup_mac/apps.sh +0 -73
  256. machineconfig/setup_windows/apps.ps1 +0 -62
  257. machineconfig/setup_windows/others/obs.ps1 +0 -4
  258. machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
  259. machineconfig/utils/installer_utils/installer.py +0 -221
  260. machineconfig-7.50.dist-info/METADATA +0 -92
  261. /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
  262. /machineconfig/jobs/installer/{custom_dev → python_scripts}/__init__.py +0 -0
  263. /machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
  264. /machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
  265. /machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
  266. /machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
  267. /machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
  268. /machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
  269. /machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
  270. /machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
  271. /machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/android.sh +0 -0
  272. /machineconfig/jobs/{installer/linux_scripts → scripts/bash_scripts}/lid.sh +0 -0
  273. /machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/mint_keyboard_shortcuts.sh +0 -0
  274. /machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_drive +0 -0
  275. /machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nw_drive +0 -0
  276. /machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_smb +0 -0
  277. /machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_cloud.sh +0 -0
  278. /machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_nfs +0 -0
  279. /machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/start_docker +0 -0
  280. /machineconfig/{scripts → jobs/scripts/powershell_scripts}/Restore-ThunderbirdProfile.ps1 +0 -0
  281. /machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/docker.ps1 +0 -0
  282. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nfs.ps1 +0 -0
  283. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nw.ps1 +0 -0
  284. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_smb.ps1 +0 -0
  285. /machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/power_options.ps1 +0 -0
  286. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_cloud.cmd +0 -0
  287. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_smb.ps1 +0 -0
  288. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
  289. /machineconfig/scripts/python/{nw → ai/utils}/__init__.py +0 -0
  290. /machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +0 -0
  291. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
  292. /machineconfig/{setup_windows/wt_and_pwsh → scripts/python/helpers_network}/__init__.py +0 -0
  293. /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
  294. /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
  295. /machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +0 -0
  296. /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
  297. {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/WHEEL +0 -0
  298. {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,12 @@
1
1
  #!/bin/bash
2
2
 
3
- mkdir -p $HOME/Downloads || true
4
- cd $HOME/Downloads
5
- curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
6
- unzip q.zip
7
- ./q/install.sh # goes to ~/.local/bin.
8
- rm q.zip
9
- rm -rfd q
3
+ # mkdir -p $HOME/Downloads || true
4
+ # cd $HOME/Downloads
5
+ # curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
6
+ # unzip q.zip
7
+ # ./q/install.sh # goes to ~/.local/bin.
8
+ # rm q.zip
9
+ # rm -rfd q
10
+
11
+ # This is a clean installation that inloves only binary movement, no bashrc manipulation.
12
+ devops install "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip"
@@ -45,6 +45,7 @@ sudo nala update
45
45
  # Install Redis
46
46
  echo "📥 Installing Redis..."
47
47
  sudo nala install redis -y
48
+ sudo nala install redis-tools -y
48
49
 
49
50
  echo """✅ INSTALLATION COMPLETE | Redis has been installed successfully
50
51
 
@@ -1,4 +1,10 @@
1
- from typing import Literal, TypeAlias, Union
1
+
2
+ GUI = [
3
+ "brave",
4
+ "code",
5
+ "git",
6
+ # "wezterm", # needs admin
7
+ ]
2
8
 
3
9
  # AI/LLM Tools - AI-powered coding and chat assistants
4
10
  AGENTS = [
@@ -8,7 +14,6 @@ AGENTS = [
8
14
  "gemini",
9
15
  "crush",
10
16
  "opencode-ai",
11
- "ollama",
12
17
  "chatgpt",
13
18
  "mods",
14
19
  "q",
@@ -18,6 +23,9 @@ AGENTS = [
18
23
  "kilocode",
19
24
  "cline",
20
25
  "auggie",
26
+ # "codex",
27
+ # "gorilla",
28
+ # "ollama",
21
29
  ]
22
30
 
23
31
 
@@ -55,9 +63,14 @@ PACKAGES_CODE_EDITORS = [
55
63
  # Database Tools - Database clients and visualizers
56
64
  PACKAGES_DATABASE = [
57
65
  "SqliteBrowser",
66
+ "sqlite3",
67
+ "redis",
68
+ "redis-cli",
69
+ "postgresql-client",
70
+ "duckdb",
58
71
  "DBeaver",
59
72
  "rainfrog",
60
- "duckdb",
73
+
61
74
  ]
62
75
 
63
76
 
@@ -137,21 +150,23 @@ PACKAGES_PRODUCTIVITY = [
137
150
  "hx",
138
151
  ]
139
152
 
140
- # Miscellaneous Tools - Other tools
141
- PACKAGES_MISC_DEV = [
153
+
154
+ # sudo nala install cowsay -y || true
155
+ # sudo nala install lolcat -y || true
156
+ # sudo nala install boxes -y || true
157
+ # sudo nala install figlet -y || true
158
+ # sudo nala install fortune -y || true
159
+ # sudo nala install toilet -y || true
160
+ TERMINAL_EYE_CANDY = [
142
161
  "lolcatjs",
143
162
  "figlet-cli",
144
163
  "boxes",
145
- "Gorilla",
146
- "Redis",
147
- "transmission",
148
- "bytehound",
149
- "atuin",
150
- "xcrawl3r",
151
- "obsidian",
152
- "istio",
153
- "cointop",
154
- "nnn",
164
+ # "transmission",
165
+ # "bytehound",
166
+ # "xcrawl3r",
167
+ # "obsidian",
168
+ # "istio",
169
+ # "cointop",
155
170
  ]
156
171
 
157
172
 
@@ -179,6 +194,7 @@ PACKAGES_FILE = [
179
194
  "winget",
180
195
  "fd",
181
196
  "fzf",
197
+ "tv",
182
198
  "broot",
183
199
  "rg",
184
200
  "rga",
@@ -190,6 +206,7 @@ PACKAGES_FILE = [
190
206
  # "xplr",
191
207
  # "joshuto",
192
208
  # "lf",
209
+ # "nnn",
193
210
  "yazi",
194
211
  "tere",
195
212
  # "exa",
@@ -207,6 +224,7 @@ PACKAGES_TERMINAL_SHELL = [
207
224
  "zellij",
208
225
  "mprocs",
209
226
  "mcfly",
227
+ "atuin",
210
228
  "starship",
211
229
  "gotty",
212
230
  "ttyd",
@@ -216,74 +234,24 @@ PACKAGES_TERMINAL_SHELL = [
216
234
 
217
235
 
218
236
 
219
-
220
-
221
- PACKAGE_GROUPS: TypeAlias = Literal[
222
- "ESSENTIAL",
223
- "DEV",
224
- "AGENTS",
225
- "TUNNELING",
226
- "TERMINAL_EMULATORS",
227
- "BROWSERS",
228
- "CODE_EDITORS",
229
- "PRESENTATION",
230
- "DATABASE",
231
- "DOC_CONVERSION",
232
- "MEDIA",
233
- "FILE_SHARING",
234
- "GIT_DOCKER_TOOLS",
235
- "DEV_UTILS",
236
- "CODE_ANALYSIS",
237
- "PRODUCTIVITY",
238
- "MISC_DEV",
239
- "SYSTEM_MONITORS",
240
- "FILE_TOOLS",
241
- "FILE_VIEWERS",
242
- "SEARCH",
243
- "TERMINAL_SHELL",
244
- "CLOUD_UTILS",
245
- "WEB_TERMINAL",
246
- ]
247
-
248
-
249
-
250
- # Main ESSENTIAL package list - combines all subgroups
251
- ESSENTIAL = [
252
- *PACKAGES_CODE_ANALYSIS,
253
- *PACKAGES_SYSTEM_MONITORS,
254
- *PACKAGES_TERMINAL_SHELL,
255
- *PACKAGES_FILE,
256
- ]
257
- DEV = [
258
- *PACKAGES_TERMINAL_EMULATORS,
259
- *PACKAGES_BROWSERS,
260
- *PACKAGES_CODE_EDITORS,
261
- *PACKAGES_DATABASE,
262
- *PACKAGES_MEDIA,
263
- *PACKAGES_FILE_SHARING,
264
- *PACKAGES_DEV_UTILS,
265
- *PACKAGES_CODE_ANALYSIS,
266
- *PACKAGES_PRODUCTIVITY,
267
- *PACKAGES_MISC_DEV,
268
- ]
269
-
270
- PACKAGE_GROUP2NAMES: dict[PACKAGE_GROUPS, list[str]] = {
271
- "ESSENTIAL": ESSENTIAL,
272
- "DEV": DEV,
273
- "AGENTS": AGENTS,
274
- "TERMINAL_EMULATORS": PACKAGES_TERMINAL_EMULATORS,
275
- "BROWSERS": PACKAGES_BROWSERS,
276
- "CODE_EDITORS": PACKAGES_CODE_EDITORS,
277
- "DATABASE": PACKAGES_DATABASE,
278
- "MEDIA": PACKAGES_MEDIA,
279
- "FILE_SHARING": PACKAGES_FILE_SHARING,
280
- "DEV_UTILS": PACKAGES_DEV_UTILS,
281
- "CODE_ANALYSIS": PACKAGES_CODE_ANALYSIS,
282
- "PRODUCTIVITY": PACKAGES_PRODUCTIVITY,
283
- "MISC_DEV": PACKAGES_MISC_DEV,
284
- "SYSTEM_MONITORS": PACKAGES_SYSTEM_MONITORS,
285
- "SEARCH": PACKAGES_FILE,
286
- "TERMINAL_SHELL": PACKAGES_TERMINAL_SHELL,
237
+ PACKAGE_GROUP2NAMES: dict[str, list[str]] = {
238
+ "sysabc": ["sysabc"],
239
+ "termabc": [*PACKAGES_CODE_ANALYSIS, *PACKAGES_SYSTEM_MONITORS, *PACKAGES_TERMINAL_SHELL, *PACKAGES_FILE,],
240
+ "gui": GUI,
241
+ "dev": [*PACKAGES_TERMINAL_EMULATORS, *PACKAGES_BROWSERS, *PACKAGES_CODE_EDITORS, *PACKAGES_DATABASE, *PACKAGES_MEDIA, *PACKAGES_FILE_SHARING, *PACKAGES_DEV_UTILS, *PACKAGES_CODE_ANALYSIS, *PACKAGES_PRODUCTIVITY, *TERMINAL_EYE_CANDY,],
242
+ "dev-utils": PACKAGES_DEV_UTILS,
243
+ "term-eye-candy": TERMINAL_EYE_CANDY,
244
+ "agents": AGENTS,
245
+ "terminal-emulator": PACKAGES_TERMINAL_EMULATORS,
246
+ "shell": PACKAGES_TERMINAL_SHELL,
247
+ "browsers": PACKAGES_BROWSERS,
248
+ "code-editors": PACKAGES_CODE_EDITORS,
249
+ "code-analysis": PACKAGES_CODE_ANALYSIS,
250
+ "db": PACKAGES_DATABASE,
251
+ "media": PACKAGES_MEDIA,
252
+ "file-sharing": PACKAGES_FILE_SHARING,
253
+ "productivity": PACKAGES_PRODUCTIVITY,
254
+ "sys-monitor": PACKAGES_SYSTEM_MONITORS,
255
+ "search": PACKAGES_FILE,
287
256
  }
288
257
 
289
- _ = Union, Literal
@@ -6,6 +6,19 @@ $objShell = New-Object -ComObject Shell.Application
6
6
  $objFolder = $objShell.Namespace($FONTS)
7
7
  $Fontdir = Get-ChildItem -Path $Path -File
8
8
 
9
+ $invalidCharPattern = "[{0}]" -f ([Regex]::Escape(([string]::Join('', [System.IO.Path]::GetInvalidFileNameChars()))))
10
+
11
+ function Get-FontBaseNameSafe {
12
+ param([string]$Input)
13
+ if ([string]::IsNullOrWhiteSpace($Input)) { return "" }
14
+ $candidate = ($Input -split ',')[0].Trim()
15
+ try { return [System.IO.Path]::GetFileNameWithoutExtension($candidate) }
16
+ catch {
17
+ $sanitized = [Regex]::Replace($candidate, $invalidCharPattern, '')
18
+ return ($sanitized -replace '\\.[^.]+$')
19
+ }
20
+ }
21
+
9
22
  # Normalization helper: remove spaces, underscores, hyphens, 'nerd', 'font', and collapse 'nf' for broad matching
10
23
  function Normalize-FontName {
11
24
  param([string]$Name)
@@ -17,47 +30,129 @@ function Normalize-FontName {
17
30
  return $n
18
31
  }
19
32
 
33
+ function Get-FontIdentityForms {
34
+ param([string]$Name)
35
+ if ([string]::IsNullOrWhiteSpace($Name)) { return @() }
36
+ $normalized = Normalize-FontName $Name
37
+ if ([string]::IsNullOrWhiteSpace($normalized)) { return @() }
38
+
39
+ $forms = @()
40
+ $forms += $normalized
41
+
42
+ $stylePattern = '(regular|italic|oblique|bold|bolditalic|semibold|semilight|light|extrabold|extralight|medium|thin|black|book|ultra|heavy|demi|retina|condensed|narrow|windowscompatible|complete|windowscomp|compatibility)+$'
43
+ $stem = $normalized
44
+ while ($stem -match $stylePattern) {
45
+ $stem = [Regex]::Replace($stem, $stylePattern, '')
46
+ if ([string]::IsNullOrWhiteSpace($stem)) { break }
47
+ $forms += $stem
48
+ }
49
+
50
+ $stemForVariants = $stem
51
+ foreach ($tail in @('mono', 'propo')) {
52
+ $tmp = $stemForVariants
53
+ while (-not [string]::IsNullOrWhiteSpace($tmp) -and $tmp.EndsWith($tail)) {
54
+ $tmp = $tmp.Substring(0, $tmp.Length - $tail.Length)
55
+ if ([string]::IsNullOrWhiteSpace($tmp)) { break }
56
+ $forms += $tmp
57
+ }
58
+ }
59
+
60
+ return ($forms | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique)
61
+ }
62
+
63
+ function Test-FontFormsOverlapFuzzy {
64
+ param(
65
+ [string[]]$CandidateForms,
66
+ [string[]]$ExistingForms
67
+ )
68
+ foreach ($candidate in $CandidateForms) {
69
+ if ([string]::IsNullOrWhiteSpace($candidate)) { continue }
70
+ foreach ($existing in $ExistingForms) {
71
+ if ([string]::IsNullOrWhiteSpace($existing)) { continue }
72
+ if ($existing.Contains($candidate) -or $candidate.Contains($existing)) { return $true }
73
+ }
74
+ }
75
+ return $false
76
+ }
77
+
78
+ function Merge-UniqueForms {
79
+ param(
80
+ [string[]]$Existing,
81
+ [string[]]$Additional
82
+ )
83
+ return (($Existing + $Additional) | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique)
84
+ }
85
+
20
86
  # Cache installed font basenames once (raw + normalized map)
21
87
  $installedFontFiles = Get-ChildItem C:\Windows\Fonts -File
22
- $installedFonts = @{}
23
- foreach ($f in $installedFontFiles) { $installedFonts[(Normalize-FontName $f.BaseName)] = 1 }
88
+ $installedFonts = @()
89
+ foreach ($f in $installedFontFiles) {
90
+ $installedFonts = Merge-UniqueForms $installedFonts (Get-FontIdentityForms $f.BaseName)
91
+ }
24
92
 
25
- Write-Host "Existing related fonts detected:" ($installedFonts.Keys | Where-Object { $_ -match 'caskaydiacove|cascadiacode' } | Sort-Object | Get-Unique) -ForegroundColor DarkGray
93
+ $relatedInstalled = $installedFonts | Where-Object { $_ -match 'caskaydiacove|cascadiacode' } | Sort-Object | Get-Unique
94
+ Write-Host "Existing related fonts detected:" $relatedInstalled -ForegroundColor DarkGray
95
+
96
+ $registryFonts = @()
97
+ $fontReg = $null
98
+ try {
99
+ $fontReg = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts' -ErrorAction Stop
100
+ } catch {
101
+ Write-Host "Registry font list unavailable: $($_.Exception.Message)" -ForegroundColor DarkYellow
102
+ }
103
+ if ($null -ne $fontReg) {
104
+ foreach ($prop in $fontReg.PSObject.Properties) {
105
+ $val = ($prop.Value | Out-String).Trim()
106
+ $nm = ($prop.Name | Out-String).Trim()
107
+ $registryFonts = Merge-UniqueForms $registryFonts (Get-FontIdentityForms (Get-FontBaseNameSafe $val))
108
+ $registryFonts = Merge-UniqueForms $registryFonts (Get-FontIdentityForms (Get-FontBaseNameSafe $nm))
109
+ }
110
+ }
26
111
 
27
112
  foreach ($File in $Fontdir) {
28
- if ($File.Name -notmatch 'pfb$') {
29
- $candidateRaw = $File.BaseName
30
- $candidateNorm = Normalize-FontName $candidateRaw
31
-
32
- # 1. Exact file existence check (handles .ttf/.otf pairs) before invoking Shell CopyHere.
33
- $destFile = Join-Path -Path 'C:\Windows\Fonts' -ChildPath $File.Name
34
- if (Test-Path -LiteralPath $destFile) { Write-Host "Skip (file exists) $($File.Name)" -ForegroundColor Green; continue }
35
-
36
- # 2. Registry check: Fonts are registered under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
37
- try {
38
- $fontReg = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts' -ErrorAction Stop
39
- $regMatch = $false
40
- foreach ($prop in $fontReg.PSObject.Properties) {
41
- $val = ($prop.Value | Out-String).Trim()
42
- $nm = ($prop.Name | Out-String).Trim()
43
- $valNorm = Normalize-FontName ( [System.IO.Path]::GetFileNameWithoutExtension($val) )
44
- $nmNorm = Normalize-FontName $nm
45
- if ($valNorm -eq $candidateNorm -or $nmNorm -eq $candidateNorm -or $nmNorm -match [Regex]::Escape($candidateNorm)) { $regMatch = $true; break }
46
- }
47
- if ($regMatch) {
48
- Write-Host "Skip (registry) $($File.Name)" -ForegroundColor Green
49
- continue
50
- }
51
- } catch {
52
- Write-Host "Registry font query failed: $($_.Exception.Message) (continuing)" -ForegroundColor DarkYellow
53
- }
113
+ if ($File.Name -match 'pfb$') { continue }
54
114
 
55
- # 3. Original heuristic set: in-memory list
56
- if ($installedFonts.ContainsKey($candidateNorm)) { Write-Host "Skip (norm map) $($File.Name)" -ForegroundColor Green; continue }
57
- if ($installedFonts.Keys | Where-Object { $_ -match [Regex]::Escape($candidateNorm) }) { Write-Host "Skip (norm regex) $($File.Name)" -ForegroundColor Green; continue }
115
+ $candidateForms = Get-FontIdentityForms $File.BaseName
116
+ if ($candidateForms.Count -eq 0) { $candidateForms = @(Normalize-FontName $File.BaseName) }
117
+ $candidateNorm = if ($candidateForms.Count -gt 0) { $candidateForms[0] } else { '' }
58
118
 
59
- Write-Host "Installing font (no matches) $($File.Name) | norm=$candidateNorm" -ForegroundColor Yellow
60
- $objFolder.CopyHere($File.FullName)
119
+ # 1. Exact file existence check (handles .ttf/.otf pairs) before invoking Shell CopyHere.
120
+ $destFile = Join-Path -Path 'C:\Windows\Fonts' -ChildPath $File.Name
121
+ if (Test-Path -LiteralPath $destFile) {
122
+ Write-Host "Skip (file exists) $($File.Name)" -ForegroundColor Green
123
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
124
+ continue
61
125
  }
126
+
127
+ # 2. Registry check: Fonts are registered under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
128
+ if ($registryFonts.Count -gt 0) {
129
+ $exactRegMatch = $candidateForms | Where-Object { $registryFonts -contains $_ }
130
+ if ($exactRegMatch.Count -gt 0) {
131
+ Write-Host "Skip (registry) $($File.Name)" -ForegroundColor Green
132
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
133
+ continue
134
+ }
135
+ if (Test-FontFormsOverlapFuzzy $candidateForms $registryFonts) {
136
+ Write-Host "Skip (registry family) $($File.Name)" -ForegroundColor Green
137
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
138
+ continue
139
+ }
140
+ }
141
+
142
+ # 3. Original heuristic set: in-memory list
143
+ if (($candidateForms | Where-Object { $installedFonts -contains $_ }).Count -gt 0) {
144
+ Write-Host "Skip (installed map) $($File.Name)" -ForegroundColor Green
145
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
146
+ continue
147
+ }
148
+ if (Test-FontFormsOverlapFuzzy $candidateForms $installedFonts) {
149
+ Write-Host "Skip (installed family) $($File.Name)" -ForegroundColor Green
150
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
151
+ continue
152
+ }
153
+
154
+ Write-Host "Installing font (no matches) $($File.Name) | norm=$candidateNorm" -ForegroundColor Yellow
155
+ $objFolder.CopyHere($File.FullName)
156
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
62
157
  }
63
158
  Write-Host "Font installation script completed." -ForegroundColor Cyan
@@ -5,7 +5,7 @@ from typing import Optional
5
5
 
6
6
  from rich.console import Console
7
7
  from rich.panel import Panel
8
- from machineconfig.utils.installer_utils.installer_abc import WINDOWS_INSTALL_PATH
8
+ from machineconfig.utils.installer_utils.installer_locator_utils import WINDOWS_INSTALL_PATH
9
9
 
10
10
  from machineconfig.utils.installer_utils.installer_class import Installer
11
11
  from machineconfig.utils.schemas.installer.installer_types import InstallerData
@@ -40,7 +40,7 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
40
40
  )
41
41
 
42
42
  installer = Installer(installer_data=installer_data_modified)
43
- downloaded, _version_to_be_installed = installer.download(version=version)
43
+ downloaded, _version_to_be_installed = installer.binary_download(version=version)
44
44
  decomp_path = downloaded.decompress()
45
45
  from pathlib import Path
46
46
  for item in decomp_path.rglob("*"):
@@ -27,7 +27,7 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
27
27
  console.print("🪟 Installing Brave Browser on Windows using winget...", style="bold")
28
28
  program = """
29
29
 
30
- winget install --Name "Brave Browser" --Id Brave.Brave --source winget --accept-package-agreements --accept-source-agreements
30
+ winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
31
31
 
32
32
  """
33
33
  elif platform.system() in ["Linux", "Darwin"]:
@@ -70,9 +70,11 @@ winget install --Name "Brave Browser" --Id Brave.Brave --source winget --accept-
70
70
  )
71
71
 
72
72
  console.print("🔄 EXECUTING | Running Brave Browser installation...", style="bold yellow")
73
+ from machineconfig.utils.code import print_code, run_shell_script
73
74
  try:
74
- subprocess.run(program, shell=True, text=True, check=True)
75
- console.print("✅ Brave Browser installation completed successfully", style="bold green")
75
+ print_code(code=program, lexer="shell", desc="Installation Script Preview")
76
+ run_shell_script(program)
77
+ console.print("✅ Installation completed successfully!", style="bold green")
76
78
  except subprocess.CalledProcessError as e:
77
79
  console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
78
80
  raise
@@ -0,0 +1,23 @@
1
+
2
+ from typing import Optional
3
+ import platform
4
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
5
+
6
+
7
+ def main(installer_data: InstallerData, version: Optional[str]):
8
+ _ = installer_data, version
9
+ system = platform.system()
10
+ if system == "Windows":
11
+ raise NotImplementedError("Installer is not yet implemented for Windows.")
12
+ elif system == "Linux":
13
+ from pathlib import Path
14
+ import machineconfig.jobs.installer as module
15
+ program = Path(module.__file__).parent.joinpath("linux_scripts/cloudflare_warp_cli.sh").read_text(encoding="utf-8")
16
+ elif system == "Darwin":
17
+ program = "brew install --cask cloudflare-warp"
18
+ else:
19
+ raise NotImplementedError(f"Unsupported platform: {system}")
20
+ import subprocess
21
+ subprocess.run(program, shell=True, check=True)
22
+ return f"Cloudflare WARP CLI installed successfully on {system}."
23
+
@@ -32,7 +32,10 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
32
32
  install_script = """brew install --cask visual-studio-code"""
33
33
  elif platform.system() == "Windows":
34
34
  console.print("🪟 Installing VS Code on Windows using winget...", style="bold")
35
- install_script = """winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements"""
35
+ install_script = """
36
+ winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
37
+
38
+ """
36
39
  else:
37
40
  error_msg = f"Unsupported platform: {platform.system()}"
38
41
  console.print(
@@ -25,6 +25,6 @@ installer_data: InstallerData = {
25
25
 
26
26
  def main(installer_data: InstallerData, version: Optional[str]) -> None:
27
27
  _ = version
28
- from machineconfig.utils.installer import Installer
28
+ from machineconfig.utils.installer_utils.installer_runner import Installer
29
29
  installer = Installer(installer_data)
30
30
  installer.install(version=None)
@@ -3,17 +3,18 @@ Installers do not add runtime files to the machine, hence this script.
3
3
  """
4
4
 
5
5
  from machineconfig.utils.path_extended import PathExtended
6
- from machineconfig.utils.installer_utils.installer_abc import WINDOWS_INSTALL_PATH
6
+ from machineconfig.utils.installer_utils.installer_locator_utils import WINDOWS_INSTALL_PATH
7
7
  from typing import Optional
8
8
  import platform
9
9
 
10
- from machineconfig.utils.installer_utils.installer_abc import LINUX_INSTALL_PATH
10
+ from machineconfig.utils.installer_utils.installer_locator_utils import LINUX_INSTALL_PATH
11
11
  from machineconfig.utils.installer_utils.installer_class import Installer
12
12
  from rich.console import Console
13
13
  from rich.panel import Panel
14
14
  from machineconfig.utils.schemas.installer.installer_types import InstallerData
15
15
 
16
16
 
17
+ LANGUAGES_SUPPORTED_GRAMMER = ["python.so", "nu.so", "bash.so", "lua.so", "powershell.so"]
17
18
  config_dict: InstallerData = {
18
19
  "appName": "hx",
19
20
  "repoURL": "CMD",
@@ -44,7 +45,7 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
44
45
  inst = Installer(installer_data=config_dict_copy)
45
46
 
46
47
  print("\n📥 [Step 1/5] Downloading Helix editor...")
47
- downloaded, _version_to_be_installed = inst.download(version=version)
48
+ downloaded, _version_to_be_installed = inst.binary_download(version=version)
48
49
  print(" ✨ Download complete.")
49
50
 
50
51
  print("\n🔍 [Step 2/5] Locating executable and components...")
@@ -58,6 +59,7 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
58
59
  raise FileNotFoundError(f"Could not find 'hx' executable in {downloaded.name}")
59
60
 
60
61
  assert len(hx_file_search) == 1, f"Expected 1 'hx' executable, found {len(hx_file_search)}"
62
+
61
63
  hx_file = hx_file_search[0]
62
64
  contrib = hx_file.parent / "contrib"
63
65
  runtime = contrib.parent / "runtime"
@@ -101,11 +103,12 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
101
103
  if not child.exists():
102
104
  continue
103
105
  if child.name == "grammars":
104
- # copy only the python.so file from runtime/grammars if it exists
105
- python_so = child.joinpath("python.so")
106
- if python_so.exists() and python_so.is_file():
107
- dest = target_runtime.joinpath("grammars")
108
- python_so.copy(folder=dest, overwrite=True)
106
+ # copy only the specific language files from runtime/grammars if they exist
107
+ for a_language in LANGUAGES_SUPPORTED_GRAMMER:
108
+ lang_file = child.joinpath(a_language)
109
+ if lang_file.exists() and lang_file.is_file():
110
+ dest = target_runtime.joinpath("grammars")
111
+ lang_file.copy(folder=dest, overwrite=True)
109
112
  else:
110
113
  # copy the whole child (file or directory) into target_runtime
111
114
  # for directories, copy will create target_runtime/<child.name>
@@ -147,10 +150,11 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
147
150
  if not child.exists():
148
151
  continue
149
152
  if child.name == "grammars":
150
- python_so = child.joinpath("python.so")
151
- if python_so.exists() and python_so.is_file():
152
- dest = target_runtime.joinpath("grammars")
153
- python_so.copy(folder=dest, overwrite=True)
153
+ for a_language in LANGUAGES_SUPPORTED_GRAMMER:
154
+ lang_file = child.joinpath(a_language)
155
+ if lang_file.exists() and lang_file.is_file():
156
+ dest = target_runtime.joinpath("grammars")
157
+ lang_file.copy(folder=dest, overwrite=True)
154
158
  else:
155
159
  try:
156
160
  child.copy(folder=target_runtime, overwrite=True)
@@ -32,7 +32,7 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
32
32
 
33
33
  if current_platform == "Windows":
34
34
  console.print("🪟 Installing Nerd Fonts on Windows...", style="bold")
35
- from machineconfig.jobs.installer.custom_dev.nerfont_windows_helper import install_nerd_fonts
35
+ from machineconfig.jobs.installer.python_scripts.nerfont_windows_helper import install_nerd_fonts
36
36
 
37
37
  try:
38
38
  install_nerd_fonts()
@@ -108,4 +108,4 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
108
108
 
109
109
 
110
110
  if __name__ == "__main__":
111
- pass
111
+ main(1, None) # type: ignore