machineconfig 6.82__py3-none-any.whl → 7.98__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.
Files changed (294) hide show
  1. machineconfig/cluster/remote/cloud_manager.py +1 -1
  2. machineconfig/cluster/sessions_managers/utils/maker.py +25 -13
  3. machineconfig/cluster/sessions_managers/wt_local.py +16 -221
  4. machineconfig/cluster/sessions_managers/wt_local_manager.py +55 -193
  5. machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
  6. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  7. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  8. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  9. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  10. machineconfig/cluster/sessions_managers/zellij_local_manager.py +3 -1
  11. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
  12. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
  13. machineconfig/jobs/installer/custom/boxes.py +2 -2
  14. machineconfig/jobs/installer/custom/hx.py +75 -18
  15. machineconfig/jobs/installer/custom/yazi.py +119 -0
  16. machineconfig/jobs/installer/custom_dev/brave.py +5 -3
  17. machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
  18. machineconfig/jobs/installer/custom_dev/code.py +4 -1
  19. machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +1 -1
  20. machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
  21. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +27 -22
  22. machineconfig/jobs/installer/custom_dev/sysabc.py +139 -0
  23. machineconfig/jobs/installer/custom_dev/wezterm.py +2 -19
  24. machineconfig/jobs/installer/custom_dev/winget.py +10 -14
  25. machineconfig/jobs/installer/installer_data.json +1287 -216
  26. machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
  27. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  28. machineconfig/jobs/installer/package_groups.py +58 -89
  29. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  30. machineconfig/logger.py +0 -1
  31. machineconfig/profile/create_helper.py +43 -16
  32. machineconfig/profile/create_links.py +2 -1
  33. machineconfig/profile/create_links_export.py +64 -18
  34. machineconfig/profile/create_shell_profile.py +78 -127
  35. machineconfig/profile/mapper.toml +15 -8
  36. machineconfig/scripts/__init__.py +0 -4
  37. machineconfig/scripts/linux/wrap_mcfg +46 -0
  38. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  39. machineconfig/scripts/python/agents.py +52 -37
  40. machineconfig/scripts/python/ai/initai.py +1 -1
  41. machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
  42. machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
  43. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
  44. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
  45. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
  46. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
  47. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
  48. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
  49. machineconfig/scripts/python/ai/solutions/generic.py +1 -1
  50. machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
  51. machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +7 -2
  52. machineconfig/scripts/python/croshell.py +77 -78
  53. machineconfig/scripts/python/devops.py +39 -21
  54. machineconfig/scripts/python/devops_navigator.py +0 -4
  55. machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
  56. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  57. machineconfig/scripts/python/fire_jobs.py +84 -115
  58. machineconfig/scripts/python/ftpx.py +42 -16
  59. machineconfig/scripts/python/helpers/ast_search.py +74 -0
  60. machineconfig/scripts/python/helpers/qr_code.py +166 -0
  61. machineconfig/scripts/python/helpers/repo_rag.py +325 -0
  62. machineconfig/scripts/python/helpers/run_py_script.py +79 -0
  63. machineconfig/scripts/python/helpers/symantic_search.py +25 -0
  64. machineconfig/scripts/python/helpers/tmp_py_scripts/a.py +26 -0
  65. machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
  66. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
  67. machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
  68. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
  69. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  70. machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_launch.py +32 -13
  71. machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_helper_types.py +11 -14
  72. machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
  73. machineconfig/scripts/python/helpers_agents/templates/template.sh +32 -0
  74. machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
  75. machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
  76. machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
  77. machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
  78. machineconfig/scripts/python/helpers_croshell/crosh.py +3 -3
  79. machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
  80. machineconfig/scripts/python/helpers_devops/cli_config.py +46 -61
  81. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +67 -55
  82. machineconfig/scripts/python/helpers_devops/cli_nw.py +157 -16
  83. machineconfig/scripts/python/helpers_devops/cli_repos.py +55 -21
  84. machineconfig/scripts/python/helpers_devops/cli_self.py +98 -48
  85. machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
  86. machineconfig/scripts/python/helpers_devops/cli_share_server.py +80 -42
  87. machineconfig/scripts/python/helpers_devops/{cli_terminal.py → cli_share_terminal.py} +15 -17
  88. machineconfig/scripts/python/helpers_devops/cli_utils.py +3 -128
  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/themes/choose_wezterm_theme.py +1 -1
  92. machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers_fire_command/file_wrangler.py} +56 -20
  93. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +26 -16
  94. machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
  95. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +3 -3
  96. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
  97. machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
  98. machineconfig/scripts/python/helpers_network/address.py +132 -0
  99. machineconfig/scripts/python/{nw → helpers_network}/devops_add_ssh_key.py +24 -5
  100. machineconfig/scripts/python/{nw → helpers_network}/mount_nfs +0 -1
  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 → helpers_network}/ssh_debug_linux.py +7 -7
  104. machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
  105. machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +1 -53
  106. machineconfig/scripts/python/{nw → helpers_network}/wsl_windows_transfer.py +3 -2
  107. machineconfig/scripts/python/helpers_repos/clone.py +0 -1
  108. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +46 -19
  109. machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
  110. machineconfig/scripts/python/helpers_repos/grource.py +1 -1
  111. machineconfig/scripts/python/helpers_repos/record.py +2 -1
  112. machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
  113. machineconfig/scripts/python/helpers_repos/{count_lines.py → repo_analyzer_2.py} +113 -192
  114. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +20 -13
  115. machineconfig/scripts/python/helpers_utils/download.py +150 -0
  116. machineconfig/scripts/python/helpers_utils/path.py +185 -0
  117. machineconfig/scripts/python/interactive.py +19 -26
  118. machineconfig/scripts/python/{mcfg.py → mcfg_entry.py} +10 -0
  119. machineconfig/scripts/python/msearch.py +71 -0
  120. machineconfig/scripts/python/sessions.py +94 -25
  121. machineconfig/scripts/python/terminal.py +133 -0
  122. machineconfig/scripts/python/utils.py +28 -30
  123. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  124. machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
  125. machineconfig/settings/broot/conf.toml +1 -1
  126. machineconfig/settings/helix/config.toml +16 -0
  127. machineconfig/settings/helix/languages.toml +13 -4
  128. machineconfig/settings/helix/yazi-picker.sh +12 -0
  129. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  130. machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
  131. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  132. machineconfig/settings/lf/windows/lfrc +14 -16
  133. machineconfig/settings/marimo/marimo.toml +1 -1
  134. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  135. machineconfig/settings/shells/bash/init.sh +43 -11
  136. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
  137. machineconfig/settings/shells/nushell/config.nu +2 -32
  138. machineconfig/settings/shells/nushell/env.nu +45 -6
  139. machineconfig/settings/shells/nushell/init.nu +314 -0
  140. machineconfig/settings/shells/pwsh/init.ps1 +40 -14
  141. machineconfig/settings/shells/starship/starship.toml +16 -0
  142. machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
  143. machineconfig/settings/shells/wt/settings.json +14 -5
  144. machineconfig/settings/shells/zsh/init.sh +17 -19
  145. machineconfig/settings/television/cable_unix/alias.toml +8 -0
  146. machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
  147. machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
  148. machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
  149. machineconfig/settings/television/cable_unix/channels.toml +19 -0
  150. machineconfig/settings/television/cable_unix/dirs.toml +13 -0
  151. machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
  152. machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
  153. machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
  154. machineconfig/settings/television/cable_unix/env.toml +17 -0
  155. machineconfig/settings/television/cable_unix/files.toml +11 -0
  156. machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
  157. machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
  158. machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
  159. machineconfig/settings/television/cable_unix/git-log.toml +12 -0
  160. machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
  161. machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
  162. machineconfig/settings/television/cable_unix/guix.toml +20 -0
  163. machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
  164. machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
  165. machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
  166. machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
  167. machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
  168. machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
  169. machineconfig/settings/television/cable_unix/procs.toml +20 -0
  170. machineconfig/settings/television/cable_unix/text.toml +17 -0
  171. machineconfig/settings/television/cable_unix/tldr.toml +18 -0
  172. machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
  173. machineconfig/settings/television/cable_windows/alias.toml +7 -0
  174. machineconfig/settings/television/cable_windows/dirs.toml +13 -0
  175. machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
  176. machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
  177. machineconfig/settings/television/cable_windows/env.toml +17 -0
  178. machineconfig/settings/television/cable_windows/files.toml +14 -0
  179. machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
  180. machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
  181. machineconfig/settings/television/cable_windows/git-log.toml +11 -0
  182. machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
  183. machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
  184. machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
  185. machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
  186. machineconfig/settings/television/cable_windows/text.toml +17 -0
  187. machineconfig/settings/yazi/init.lua +61 -0
  188. machineconfig/settings/yazi/keymap_linux.toml +94 -0
  189. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  190. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  191. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  192. machineconfig/settings/yazi/theme.toml +4 -0
  193. machineconfig/settings/yazi/yazi_linux.toml +84 -0
  194. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  195. machineconfig/setup_linux/__init__.py +2 -1
  196. machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -12
  197. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
  198. machineconfig/setup_mac/__init__.py +2 -3
  199. machineconfig/setup_mac/apps_gui.sh +248 -0
  200. machineconfig/setup_windows/__init__.py +3 -3
  201. machineconfig/setup_windows/uv.ps1 +8 -1
  202. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +26 -11
  203. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
  204. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  205. machineconfig/utils/accessories.py +7 -4
  206. machineconfig/utils/code.py +99 -32
  207. machineconfig/utils/files/ascii_art.py +1 -1
  208. machineconfig/utils/files/headers.py +3 -2
  209. machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
  210. machineconfig/utils/installer_utils/install_from_url.py +183 -0
  211. machineconfig/utils/installer_utils/installer_class.py +42 -99
  212. machineconfig/utils/installer_utils/installer_cli.py +175 -0
  213. machineconfig/utils/installer_utils/installer_helper.py +129 -0
  214. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +36 -85
  215. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +16 -61
  216. machineconfig/utils/io.py +69 -1
  217. machineconfig/utils/links.py +56 -38
  218. machineconfig/utils/meta.py +33 -18
  219. machineconfig/utils/options.py +46 -18
  220. machineconfig/utils/options_tv.py +119 -0
  221. machineconfig/utils/path_extended.py +44 -95
  222. machineconfig/utils/path_helper.py +76 -23
  223. machineconfig/utils/procs.py +1 -1
  224. machineconfig/utils/scheduler.py +20 -53
  225. machineconfig/utils/scheduling.py +0 -2
  226. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  227. machineconfig/utils/schemas/layouts/layout_types.py +1 -1
  228. machineconfig/utils/ssh.py +159 -412
  229. machineconfig/utils/ssh_utils/abc.py +5 -0
  230. machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
  231. machineconfig/utils/ssh_utils/copy_to_here.py +302 -0
  232. machineconfig/utils/ssh_utils/utils.py +142 -0
  233. machineconfig/utils/ssh_utils/wsl.py +210 -0
  234. machineconfig/utils/terminal.py +1 -0
  235. machineconfig/utils/upgrade_packages.py +104 -28
  236. machineconfig/utils/ve.py +12 -4
  237. machineconfig-7.98.dist-info/METADATA +132 -0
  238. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/RECORD +259 -196
  239. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/entry_points.txt +4 -1
  240. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
  241. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  242. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  243. machineconfig/scripts/linux/fzf2g +0 -21
  244. machineconfig/scripts/linux/fzfag +0 -17
  245. machineconfig/scripts/linux/fzffg +0 -25
  246. machineconfig/scripts/linux/fzfrga +0 -21
  247. machineconfig/scripts/linux/mcfgs +0 -38
  248. machineconfig/scripts/linux/other/share_smb +0 -1
  249. machineconfig/scripts/linux/skrg +0 -4
  250. machineconfig/scripts/linux/warp-cli.sh +0 -122
  251. machineconfig/scripts/linux/z_ls +0 -104
  252. machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
  253. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
  254. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
  255. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
  256. machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
  257. machineconfig/scripts/python/helpers_fire/template.sh +0 -15
  258. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
  259. machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
  260. machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
  261. machineconfig/scripts/windows/fzfb.ps1 +0 -3
  262. machineconfig/scripts/windows/fzfg.ps1 +0 -2
  263. machineconfig/scripts/windows/fzfrga.bat +0 -20
  264. machineconfig/scripts/windows/mcfgs.ps1 +0 -17
  265. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  266. machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
  267. machineconfig/settings/lf/windows/tst.ps1 +0 -1
  268. machineconfig/settings/yazi/yazi.toml +0 -4
  269. machineconfig/setup_linux/apps.sh +0 -66
  270. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  271. machineconfig/setup_mac/apps.sh +0 -73
  272. machineconfig/setup_windows/apps.ps1 +0 -62
  273. machineconfig/utils/installer_utils/installer.py +0 -225
  274. machineconfig-6.82.dist-info/METADATA +0 -82
  275. /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
  276. /machineconfig/scripts/python/{helpers_fire → ai/utils}/__init__.py +0 -0
  277. /machineconfig/scripts/python/{helpers_fire/agentic_frameworks → helpers_agents}/__init__.py +0 -0
  278. /machineconfig/scripts/python/{nw → helpers_agents/agentic_frameworks}/__init__.py +0 -0
  279. /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_search.py +0 -0
  280. /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_load_balancer.py +0 -0
  281. /machineconfig/scripts/python/{helpers_fire → helpers_agents/templates}/template.ps1 +0 -0
  282. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
  283. /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers_network/__init__.py} +0 -0
  284. /machineconfig/scripts/python/{nw → helpers_network}/devops_add_identity.py +0 -0
  285. /machineconfig/scripts/python/{nw → helpers_network}/mount_drive +0 -0
  286. /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive +0 -0
  287. /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
  288. /machineconfig/scripts/python/{nw → helpers_network}/mount_smb +0 -0
  289. /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
  290. /machineconfig/scripts/{Restore-ThunderbirdProfile.ps1 → windows/mounts/Restore-ThunderbirdProfile.ps1} +0 -0
  291. /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
  292. /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
  293. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/WHEEL +0 -0
  294. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/top_level.txt +0 -0
@@ -1,225 +0,0 @@
1
- """Devops Devapps Install"""
2
-
3
- from machineconfig.utils.installer import dynamically_extract_installers_system_groups_from_scripts
4
- import typer
5
- from rich.console import Console
6
- from rich.panel import Panel
7
- from rich.table import Table
8
- from typing import Optional, cast, get_args, Annotated
9
- from machineconfig.jobs.installer.package_groups import PACKAGE_GROUPS, PACKAGE_GROUP2NAMES
10
-
11
- console = Console()
12
-
13
-
14
- def _handle_installer_not_found(search_term: str, all_installers: list["InstallerData"]) -> None: # type: ignore
15
- """Handle installer not found with friendly suggestions using fuzzy matching."""
16
- from difflib import get_close_matches
17
-
18
- all_names = []
19
- for inst in all_installers:
20
- exe_name = inst["appName"]
21
- all_names.append(exe_name)
22
- close_matches = get_close_matches(search_term, all_names, n=5, cutoff=0.4)
23
- console.print(f"\n❌ '[red]{search_term}[/red]' was not found.", style="bold")
24
-
25
- if close_matches:
26
- console.print("🤔 Did you mean one of these?", style="yellow")
27
- table = Table(show_header=False, box=None, pad_edge=False)
28
- for i, match in enumerate(close_matches, 1):
29
- table.add_row(f"[cyan]{i}.[/cyan]", f"[green]{match}[/green]")
30
- console.print(table)
31
- else:
32
- console.print("📋 Here are some available options:", style="blue")
33
- # Show first 10 installers as examples
34
- sample_names = []
35
- for inst in all_installers[:10]:
36
- exe_name = inst["appName"]
37
- sample_names.append(exe_name)
38
-
39
- table = Table(show_header=False, box=None, pad_edge=False)
40
- for i, name in enumerate(sample_names, 1):
41
- table.add_row(f"[cyan]{i}.[/cyan]", f"[green]{name}[/green]")
42
- console.print(table)
43
-
44
- if len(all_installers) > 10:
45
- console.print(f" [dim]... and {len(all_installers) - 10} more[/dim]")
46
-
47
- panel = Panel(f"[bold blue]💡 Use 'ia' to interactively browse all available installers.[/bold blue]\n[bold blue]💡 Use one of the categories: {list(get_args(PACKAGE_GROUPS))}[/bold blue]", title="[yellow]Helpful Tips[/yellow]", border_style="yellow")
48
- console.print(panel)
49
-
50
-
51
- def main_with_parser():
52
- import typer
53
- app = typer.Typer()
54
- app.command()(main)
55
- app()
56
-
57
-
58
- def main(
59
- which: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program/groups names to install (if --group flag is set).")] = None,
60
- group: Annotated[bool, typer.Option(..., "--group", "-g", help="Treat 'which' as a group name. A group is bundle of apps.")] = False,
61
- interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Interactive selection of programs to install.")] = False,
62
- ) -> None:
63
- if interactive:
64
- return install_interactively()
65
- if which is not None:
66
- if group:
67
- for a_group in [x.strip() for x in which.split(",") if x.strip() != ""]:
68
- return install_group(package_group=a_group)
69
- else:
70
- return install_clis(clis_names=[x.strip() for x in which.split(",") if x.strip() != ""])
71
- else:
72
- if group:
73
- typer.echo("❌ You must provide a group name when using the --group/-g option.")
74
- res = get_static_groups_combined_with_dynamic_groups_extracted()
75
- console.print("[bold blue]Here are the available groups:[/bold blue]")
76
- table = Table(show_header=True, header_style="bold magenta")
77
- table.add_column("Group", style="cyan", no_wrap=True)
78
- table.add_column("AppsBundled", style="green", overflow="fold")
79
- for display, group_name in res.items():
80
- # Parse display
81
- if " -- " in display:
82
- group_part, items_part = display.split(" -- ", 1)
83
- group_name_parsed = group_part.replace("📦 ", "").strip()
84
- items_str = items_part.strip()
85
- else:
86
- group_name_parsed = display
87
- items_str = group_name
88
- table.add_row(group_name_parsed, items_str)
89
- console.print(table)
90
- raise typer.Exit(1)
91
- typer.echo("❌ You must provide either a program name/group name, or use --interactive/-ia option.")
92
- import click
93
- ctx = click.get_current_context()
94
- typer.echo(ctx.get_help())
95
- raise typer.Exit(1)
96
-
97
-
98
- def get_static_groups_combined_with_dynamic_groups_extracted():
99
- # Build category options and maintain a mapping from display text to actual category name
100
- category_display_to_name: dict[str, str] = {}
101
- for group_name, group_values in PACKAGE_GROUP2NAMES.items():
102
- display = f"📦 {group_name:<20}" + " -- " + f"{'|'.join(group_values):<60}"
103
- category_display_to_name[display] = group_name
104
- options_system = dynamically_extract_installers_system_groups_from_scripts()
105
- for item in options_system:
106
- display = f"📦 {item['appName']:<20} -- {item['doc']:<60}"
107
- category_display_to_name[display] = item['appName']
108
- return category_display_to_name
109
-
110
-
111
- def install_interactively():
112
- from machineconfig.utils.options import choose_from_options
113
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
114
- from machineconfig.utils.installer import get_installers
115
- from machineconfig.utils.installer_utils.installer_class import Installer
116
- installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
117
- installer_options = []
118
- for x in installers:
119
- installer_options.append(Installer(installer_data=x).get_description())
120
-
121
- category_display_to_name = get_static_groups_combined_with_dynamic_groups_extracted()
122
- options = list(category_display_to_name.keys()) + ["─" * 50] + installer_options
123
- program_names = choose_from_options(multi=True, msg="Categories are prefixed with 📦", options=options, header="🚀 CHOOSE DEV APP OR CATEGORY", default="📦 essentials", fzf=True)
124
- installation_messages: list[str] = []
125
- for _an_idx, a_program_name in enumerate(program_names):
126
- if a_program_name.startswith("─"): # 50 dashes separator
127
- continue
128
- if a_program_name.startswith("📦 "):
129
- category_name = category_display_to_name.get(a_program_name)
130
- if category_name:
131
- install_group(package_group=cast(PACKAGE_GROUPS, category_name))
132
- else:
133
- installer_idx = installer_options.index(a_program_name)
134
- an_installer_data = installers[installer_idx]
135
- status_message = Installer(an_installer_data).install_robust(version=None) # finish the task - this returns a status message, not a command
136
- installation_messages.append(status_message)
137
- if installation_messages:
138
- panel = Panel("\n".join([f"[blue]• {message}[/blue]" for message in installation_messages]), title="[bold green]📊 Installation Summary[/bold green]", border_style="green", padding=(1, 2))
139
- console.print(panel)
140
-
141
-
142
- def install_group(package_group: str):
143
- panel = Panel(f"[bold yellow]Installing programs from category: [green]{package_group}[/green][/bold yellow]", title="[bold blue]📦 Category Installation[/bold blue]", border_style="blue", padding=(1, 2))
144
- console.print(panel)
145
- from machineconfig.utils.installer import get_installers, install_bulk
146
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
147
- if package_group in PACKAGE_GROUP2NAMES:
148
- installers_ = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=[package_group])
149
- install_bulk(installers_data=installers_)
150
- else:
151
- options_system = dynamically_extract_installers_system_groups_from_scripts()
152
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
153
- from machineconfig.utils.code import run_shell_script
154
- for an_item in options_system:
155
- if an_item["appName"] == package_group:
156
- program = an_item["fileNamePattern"][get_normalized_arch()][get_os_name()]
157
- if program is not None:
158
- run_shell_script(program)
159
- break
160
-
161
-
162
- def choose_from_system_package_groups(options_system: dict[str, tuple[str, str]]) -> str:
163
- from machineconfig.utils.options import choose_from_options
164
- display_options = []
165
- for group_name, (description, _) in options_system.items():
166
- if description:
167
- display_options.append(f"{group_name:<20} - {description}")
168
- else:
169
- display_options.append(group_name)
170
- program_names = choose_from_options(multi=True, msg="", options=sorted(display_options), header="🚀 CHOOSE DEV APP", fzf=True)
171
- program = ""
172
- for display_name in program_names:
173
- # Extract the actual group name (everything before " - " if present)
174
- group_name = display_name.split(" - ")[0].strip() if " - " in display_name else display_name.strip()
175
- console.print(f"\n[bold cyan]⚙️ Installing: [yellow]{group_name}[/yellow][/bold cyan]", style="bold")
176
- _, sub_program = options_system[group_name] # Extract content from tuple
177
- if sub_program.startswith("#winget"):
178
- sub_program = sub_program[1:]
179
- program += "\n" + sub_program
180
- return program
181
-
182
-
183
- def install_clis(clis_names: list[str]):
184
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
185
- from machineconfig.utils.installer import get_installers
186
- from machineconfig.utils.installer_utils.installer_class import Installer
187
-
188
- total_messages: list[str] = []
189
- for a_which in clis_names:
190
- all_installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
191
- selected_installer = None
192
- for installer in all_installers:
193
- app_name = installer["appName"]
194
- if app_name.lower() == a_which.lower():
195
- selected_installer = installer
196
- break
197
- if selected_installer is None:
198
- _handle_installer_not_found(a_which, all_installers)
199
- return None
200
- message = Installer(selected_installer).install_robust(version=None) # finish the task
201
- total_messages.append(message)
202
- if total_messages:
203
- console.print("\n[bold green]📊 Installation Results:[/bold green]")
204
- for a_message in total_messages:
205
- console.print(f"[blue]• {a_message}[/blue]")
206
- return None
207
-
208
-
209
- def install_if_missing(which: str):
210
- from machineconfig.utils.installer_utils.installer_abc import check_tool_exists
211
- exists = check_tool_exists(which)
212
- if exists:
213
- print(f"✅ {which} is already installed.")
214
- return
215
- print(f"⏳ {which} not found. Installing...")
216
- from machineconfig.utils.installer_utils.installer import main
217
- main(which=which, interactive=False)
218
-
219
-
220
- if __name__ == "__main__":
221
- from machineconfig.utils.schemas.installer.installer_types import InstallerData
222
- from machineconfig.utils.installer_utils.installer_class import Installer
223
-
224
- _ = InstallerData, Installer
225
- pass
@@ -1,82 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: machineconfig
3
- Version: 6.82
4
- Summary: Dotfiles management package
5
- Author-email: Alex Al-Saffar <programmer@usa.com>
6
- License: Apache 2.0
7
- Project-URL: Homepage, https://github.com/thisismygitrepo/machineconfig
8
- Project-URL: Bug Tracker, https://github.com/thisismygitrepo/machineconfig/issues
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.13
13
- Description-Content-Type: text/markdown
14
- Requires-Dist: cryptography>=44.0.2
15
- Requires-Dist: fire>=0.7.0
16
- Requires-Dist: joblib>=1.5.2
17
- Requires-Dist: paramiko>=3.5.1
18
- Requires-Dist: randomname>=0.2.1
19
- Requires-Dist: requests>=2.32.5
20
- Requires-Dist: rich>=14.0.0
21
- Requires-Dist: tenacity>=9.1.2
22
- Requires-Dist: psutil>=7.0.0
23
- Requires-Dist: gitpython>=3.1.44
24
- Requires-Dist: pyfzf>=0.3.1
25
- Requires-Dist: rclone-python>=0.1.23
26
- Requires-Dist: questionary>=2.1.1
27
- Requires-Dist: typer-slim>=0.19.2
28
- Requires-Dist: typer>=0.19.2
29
- Provides-Extra: windows
30
- Requires-Dist: pywin32; extra == "windows"
31
- Provides-Extra: plot
32
- Requires-Dist: sqlalchemy>=2.0.43; extra == "plot"
33
- Requires-Dist: ipykernel>=6.30.1; extra == "plot"
34
- Requires-Dist: ipython>=9.5.0; extra == "plot"
35
- Requires-Dist: jupyterlab>=4.4.9; extra == "plot"
36
- Requires-Dist: kaleido>=1.1.0; extra == "plot"
37
- Requires-Dist: matplotlib>=3.10.6; extra == "plot"
38
- Requires-Dist: nbformat>=5.10.4; extra == "plot"
39
- Requires-Dist: numpy>=2.3.3; extra == "plot"
40
- Requires-Dist: plotly>=6.3.0; extra == "plot"
41
- Requires-Dist: polars>=1.33.1; extra == "plot"
42
- Requires-Dist: python-magic>=0.4.27; extra == "plot"
43
-
44
-
45
- <p align="center">
46
-
47
- <a href="https://github.com/thisismygitrepo/machineconfig/commits">
48
- <img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
49
- </a>
50
-
51
- </p>
52
-
53
-
54
- # Welcome to machineconfig
55
-
56
- Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
57
- Dotfiles are divided into private and public. Examples of private ones are, `~/.gitconfig`, `~/.ssh`, etc. Whereas public config files are ones like `lfrc`. The private dotfiles are placed @ `~/dotfiles`. The files therein are encrypted before backedup.
58
-
59
- # Install On Windows:
60
-
61
- ```powershell
62
-
63
- iex (iwr bit.ly/cfgwindows).Content
64
- ```
65
-
66
- # Install On Linux and MacOS
67
-
68
- ```bash
69
-
70
- . <(curl -L bit.ly/cfglinux)
71
- ```
72
-
73
-
74
- # Author
75
- Alex Al-Saffar. [email](mailto:programmer@usa.com)
76
-
77
- # Contributor
78
- Ruby Chan. [email](mailto:ruby.chan@sa.gov.au)
79
-
80
-
81
- [![Alex's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=thisismygitrepo)](https://github.com/ashutosh00710/github-readme-activity-graph)
82
-