machineconfig 6.82__py3-none-any.whl → 8.51__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 (461) hide show
  1. machineconfig/cluster/remote/cloud_manager.py +1 -1
  2. machineconfig/cluster/remote/run_cluster.py +1 -1
  3. machineconfig/cluster/remote/run_remote.py +1 -1
  4. machineconfig/cluster/sessions_managers/utils/maker.py +29 -15
  5. machineconfig/cluster/sessions_managers/wt_local.py +17 -222
  6. machineconfig/cluster/sessions_managers/wt_local_manager.py +56 -194
  7. machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
  8. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  9. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  10. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  11. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  12. machineconfig/cluster/sessions_managers/zellij_local.py +1 -1
  13. machineconfig/cluster/sessions_managers/zellij_local_manager.py +4 -2
  14. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
  15. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
  16. machineconfig/jobs/installer/checks/check_installations.py +133 -0
  17. machineconfig/jobs/installer/checks/install_utils.py +132 -0
  18. machineconfig/jobs/installer/checks/report_utils.py +39 -0
  19. machineconfig/jobs/installer/checks/vt_utils.py +89 -0
  20. machineconfig/jobs/installer/installer_data.json +1500 -310
  21. machineconfig/jobs/installer/linux_scripts/docker.sh +6 -9
  22. machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
  23. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  24. machineconfig/jobs/installer/package_groups.py +62 -91
  25. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  26. machineconfig/jobs/installer/{custom → python_scripts}/boxes.py +2 -3
  27. machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +5 -3
  28. machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +23 -0
  29. machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +14 -9
  30. machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +1 -1
  31. machineconfig/jobs/installer/python_scripts/hx.py +214 -0
  32. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +2 -2
  33. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +32 -26
  34. machineconfig/jobs/installer/python_scripts/sysabc.py +145 -0
  35. machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +2 -19
  36. machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +10 -14
  37. machineconfig/jobs/installer/python_scripts/yazi.py +139 -0
  38. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nfs +0 -1
  39. machineconfig/jobs/scripts/powershell_scripts/cmatrix.ps1 +52 -0
  40. machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +13 -0
  41. machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +4 -0
  42. machineconfig/jobs/scripts_dynamic/a.py +428 -0
  43. machineconfig/logger.py +1 -2
  44. machineconfig/profile/create_helper.py +56 -18
  45. machineconfig/profile/create_links.py +79 -21
  46. machineconfig/profile/create_links_export.py +87 -36
  47. machineconfig/profile/create_shell_profile.py +92 -127
  48. machineconfig/profile/mapper_data.toml +45 -0
  49. machineconfig/profile/mapper_dotfiles.toml +249 -0
  50. machineconfig/scripts/__init__.py +0 -4
  51. machineconfig/scripts/linux/wrap_mcfg +46 -0
  52. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  53. machineconfig/scripts/python/agents.py +85 -165
  54. machineconfig/scripts/python/ai/initai.py +4 -2
  55. machineconfig/scripts/python/ai/scripts/__init__.py +1 -0
  56. machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
  57. machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
  58. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +2 -0
  59. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +8 -6
  60. machineconfig/scripts/python/ai/solutions/claude/claude.py +1 -1
  61. machineconfig/scripts/python/ai/solutions/cline/cline.py +1 -1
  62. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
  63. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
  64. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
  65. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +6 -6
  66. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +33 -0
  67. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
  68. machineconfig/scripts/python/ai/solutions/crush/crush.py +1 -1
  69. machineconfig/scripts/python/ai/solutions/cursor/cursors.py +1 -1
  70. machineconfig/scripts/python/ai/solutions/gemini/gemini.py +1 -1
  71. machineconfig/scripts/python/ai/solutions/gemini/settings.json +3 -0
  72. machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
  73. machineconfig/scripts/python/ai/{solutions → utils}/generic.py +2 -15
  74. machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +13 -5
  75. machineconfig/scripts/python/cloud.py +58 -11
  76. machineconfig/scripts/python/croshell.py +10 -162
  77. machineconfig/scripts/python/devops.py +73 -36
  78. machineconfig/scripts/python/devops_navigator.py +16 -6
  79. machineconfig/scripts/python/fire_jobs.py +8 -222
  80. machineconfig/scripts/python/ftpx.py +7 -200
  81. machineconfig/scripts/python/graph/cli_graph.json +8743 -0
  82. machineconfig/scripts/python/{env_manager → helper_env}/path_manager_tui.py +2 -2
  83. machineconfig/scripts/python/helpers/helper_env/env_manager_tui.py +204 -0
  84. machineconfig/scripts/python/helpers/helper_env/path_manager_tui.py +228 -0
  85. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
  86. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
  87. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
  88. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
  89. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  90. machineconfig/scripts/python/helpers/helpers_agents/agents_impl.py +168 -0
  91. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_help_launch.py +38 -16
  92. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_helper_types.py +11 -14
  93. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
  94. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
  95. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/copilot/config.yml +1 -0
  96. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/crush/crush.json +10 -0
  97. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/gemini/settings.json +12 -0
  98. machineconfig/scripts/python/helpers/helpers_agents/privacy/privacy.py +109 -0
  99. machineconfig/scripts/python/helpers/helpers_agents/templates/prompt.txt +10 -0
  100. machineconfig/scripts/python/helpers/helpers_agents/templates/template.sh +34 -0
  101. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_copy.py +32 -25
  102. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_mount.py +29 -22
  103. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_sync.py +9 -8
  104. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers2.py +1 -1
  105. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/crosh.py +3 -3
  106. machineconfig/scripts/python/helpers/helpers_croshell/croshell_impl.py +225 -0
  107. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/scheduler.py +4 -4
  108. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/start_slidev.py +12 -12
  109. machineconfig/scripts/python/helpers/helpers_devops/backup_config.py +149 -0
  110. machineconfig/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +262 -0
  111. machineconfig/scripts/python/helpers/helpers_devops/cli_config.py +98 -0
  112. machineconfig/scripts/python/helpers/helpers_devops/cli_config_dotfile.py +274 -0
  113. machineconfig/scripts/python/helpers/helpers_devops/cli_data.py +67 -0
  114. machineconfig/scripts/python/helpers/helpers_devops/cli_nw.py +201 -0
  115. machineconfig/scripts/python/helpers/helpers_devops/cli_repos.py +274 -0
  116. machineconfig/scripts/python/helpers/helpers_devops/cli_self.py +197 -0
  117. machineconfig/scripts/python/helpers/helpers_devops/cli_share_file.py +151 -0
  118. machineconfig/scripts/python/helpers/helpers_devops/cli_share_server.py +125 -0
  119. machineconfig/scripts/python/{helpers_devops/cli_terminal.py → helpers/helpers_devops/cli_share_terminal.py} +26 -22
  120. machineconfig/scripts/python/helpers/helpers_devops/cli_ssh.py +167 -0
  121. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_status.py +17 -23
  122. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_update_repos.py +1 -1
  123. machineconfig/scripts/python/{interactive.py → helpers/helpers_devops/interactive.py} +78 -71
  124. machineconfig/scripts/python/helpers/helpers_devops/run_script.py +197 -0
  125. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +41 -0
  126. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +48 -0
  127. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_wezterm_theme.py +4 -4
  128. machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers/helpers_fire_command/file_wrangler.py} +57 -20
  129. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_args_helper.py +1 -0
  130. machineconfig/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +233 -0
  131. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_route_helper.py +26 -16
  132. machineconfig/scripts/python/helpers/helpers_msearch/__init__.py +5 -0
  133. machineconfig/scripts/python/helpers/helpers_msearch/msearch_impl.py +248 -0
  134. machineconfig/scripts/{linux → python/helpers/helpers_msearch/scripts_linux}/fzfg +6 -5
  135. machineconfig/scripts/python/helpers/helpers_msearch/scripts_linux/search_with_context.sh +48 -0
  136. machineconfig/scripts/python/helpers/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
  137. machineconfig/scripts/python/helpers/helpers_navigator/__init__.py +20 -0
  138. machineconfig/scripts/python/helpers/helpers_navigator/cli_graph_loader.py +234 -0
  139. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/command_builder.py +61 -13
  140. machineconfig/scripts/python/helpers/helpers_navigator/command_detail.py +153 -0
  141. machineconfig/scripts/python/helpers/helpers_navigator/command_tree.py +45 -0
  142. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/data_models.py +18 -11
  143. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/main_app.py +5 -5
  144. machineconfig/scripts/python/helpers/helpers_network/address.py +174 -0
  145. machineconfig/scripts/python/helpers/helpers_network/address_switch.py +78 -0
  146. machineconfig/scripts/python/helpers/helpers_network/ftpx_impl.py +276 -0
  147. machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_nfs.py +2 -2
  148. machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_ssh.py +3 -3
  149. machineconfig/scripts/python/helpers/helpers_network/ssh_add_identity.py +73 -0
  150. machineconfig/scripts/python/helpers/helpers_network/ssh_add_ssh_key.py +175 -0
  151. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_linux.py +319 -0
  152. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_windows.py +275 -0
  153. machineconfig/scripts/python/{nw → helpers/helpers_network}/wifi_conn.py +1 -53
  154. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action.py +3 -3
  155. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action_helper.py +3 -3
  156. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/clone.py +0 -1
  157. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/cloud_repo_sync.py +159 -48
  158. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/grource.py +4 -3
  159. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/record.py +33 -12
  160. machineconfig/scripts/python/helpers/helpers_repos/repo_analyzer_1.py +160 -0
  161. machineconfig/scripts/python/{helpers_repos/count_lines.py → helpers/helpers_repos/repo_analyzer_2.py} +156 -191
  162. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/update.py +0 -6
  163. machineconfig/scripts/python/helpers/helpers_search/ast_search.py +74 -0
  164. machineconfig/scripts/python/helpers/helpers_search/qr_code.py +166 -0
  165. machineconfig/scripts/python/helpers/helpers_search/repo_rag.py +325 -0
  166. machineconfig/scripts/python/helpers/helpers_search/script_help.py +81 -0
  167. machineconfig/scripts/python/helpers/helpers_search/symantic_search.py +25 -0
  168. machineconfig/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
  169. machineconfig/scripts/python/helpers/helpers_sessions/sessions_impl.py +186 -0
  170. machineconfig/scripts/python/{helpers_sessions → helpers/helpers_sessions}/sessions_multiprocess.py +20 -14
  171. machineconfig/scripts/python/helpers/helpers_terminal/__init__.py +0 -0
  172. machineconfig/scripts/python/helpers/helpers_terminal/terminal_impl.py +96 -0
  173. machineconfig/scripts/python/helpers/helpers_utils/download.py +150 -0
  174. machineconfig/scripts/python/helpers/helpers_utils/pdf.py +96 -0
  175. machineconfig/scripts/python/helpers/helpers_utils/python.py +210 -0
  176. machineconfig/scripts/python/helpers/helpers_utils/specs.py +246 -0
  177. machineconfig/scripts/python/mcfg_entry.py +143 -0
  178. machineconfig/scripts/python/msearch.py +26 -0
  179. machineconfig/scripts/python/sessions.py +69 -135
  180. machineconfig/scripts/python/terminal.py +58 -0
  181. machineconfig/scripts/python/utils.py +115 -38
  182. machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
  183. machineconfig/settings/atuin/config.toml +294 -0
  184. machineconfig/settings/atuin/themes/catppuccin-mocha-mauve.toml +12 -0
  185. machineconfig/settings/broot/conf.toml +1 -1
  186. machineconfig/settings/helix/config.toml +16 -0
  187. machineconfig/settings/helix/languages.toml +13 -4
  188. machineconfig/settings/helix/yazi-picker.sh +12 -0
  189. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  190. machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
  191. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  192. machineconfig/settings/lf/windows/lfrc +14 -16
  193. machineconfig/settings/linters/.ruff.toml +2 -1
  194. machineconfig/settings/marimo/marimo.toml +1 -1
  195. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  196. machineconfig/settings/mprocs/windows/mprocs.yaml +2 -2
  197. machineconfig/settings/shells/bash/init.sh +47 -12
  198. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
  199. machineconfig/settings/shells/nushell/config.nu +25 -33
  200. machineconfig/settings/shells/nushell/env.nu +21 -8
  201. machineconfig/settings/shells/nushell/init.nu +138 -0
  202. machineconfig/settings/shells/pwsh/init.ps1 +111 -17
  203. machineconfig/settings/shells/pwsh/search_pwsh_history.ps1 +99 -0
  204. machineconfig/settings/shells/starship/starship.toml +16 -0
  205. machineconfig/settings/shells/wezterm/wezterm.lua +6 -1
  206. machineconfig/settings/shells/wt/settings.json +27 -18
  207. machineconfig/settings/shells/zsh/init.sh +42 -23
  208. machineconfig/settings/television/cable_unix/alias.toml +8 -0
  209. machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
  210. machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
  211. machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
  212. machineconfig/settings/television/cable_unix/channels.toml +19 -0
  213. machineconfig/settings/television/cable_unix/dirs.toml +13 -0
  214. machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
  215. machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
  216. machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
  217. machineconfig/settings/television/cable_unix/env.toml +17 -0
  218. machineconfig/settings/television/cable_unix/files.toml +11 -0
  219. machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
  220. machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
  221. machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
  222. machineconfig/settings/television/cable_unix/git-log.toml +12 -0
  223. machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
  224. machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
  225. machineconfig/settings/television/cable_unix/guix.toml +20 -0
  226. machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
  227. machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
  228. machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
  229. machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
  230. machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
  231. machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
  232. machineconfig/settings/television/cable_unix/procs.toml +20 -0
  233. machineconfig/settings/television/cable_unix/text.toml +17 -0
  234. machineconfig/settings/television/cable_unix/tldr.toml +18 -0
  235. machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
  236. machineconfig/settings/television/cable_windows/alias.toml +7 -0
  237. machineconfig/settings/television/cable_windows/dirs.toml +13 -0
  238. machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
  239. machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
  240. machineconfig/settings/television/cable_windows/env.toml +17 -0
  241. machineconfig/settings/television/cable_windows/files.toml +14 -0
  242. machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
  243. machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
  244. machineconfig/settings/television/cable_windows/git-log.toml +11 -0
  245. machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
  246. machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
  247. machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
  248. machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
  249. machineconfig/settings/television/cable_windows/text.toml +17 -0
  250. machineconfig/settings/tv/config.toml +234 -0
  251. machineconfig/settings/tv/themes/catppuccin-mocha-sky.toml +22 -0
  252. machineconfig/settings/wsl/.wslconfig +5 -30
  253. machineconfig/settings/wt/__init__.py +0 -0
  254. machineconfig/settings/yazi/init.lua +61 -0
  255. machineconfig/settings/yazi/keymap_linux.toml +94 -0
  256. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  257. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  258. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  259. machineconfig/settings/yazi/theme.toml +4 -0
  260. machineconfig/settings/yazi/yazi_linux.toml +94 -0
  261. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  262. machineconfig/settings/zellij/layouts/st.kdl +40 -9
  263. machineconfig/settings/zellij/layouts/st2.kdl +1 -1
  264. machineconfig/setup_linux/__init__.py +2 -2
  265. machineconfig/setup_linux/apps_desktop.sh +8 -27
  266. machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -12
  267. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +34 -0
  268. machineconfig/setup_mac/__init__.py +1 -4
  269. machineconfig/setup_mac/apps_gui.sh +248 -0
  270. machineconfig/setup_windows/__init__.py +2 -5
  271. machineconfig/setup_windows/uv.ps1 +8 -1
  272. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +28 -12
  273. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +31 -0
  274. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  275. machineconfig/type_hinting/sql/__init__.py +1 -0
  276. machineconfig/type_hinting/sql/base.py +216 -0
  277. machineconfig/type_hinting/sql/core_schema.py +64 -0
  278. machineconfig/type_hinting/sql/core_schema_typeddict.py +41 -0
  279. machineconfig/type_hinting/sql/typeddict_codegen.py +222 -0
  280. machineconfig/type_hinting/typedict/__init__.py +1 -0
  281. machineconfig/type_hinting/typedict/ast_utils.py +130 -0
  282. machineconfig/type_hinting/typedict/generator_helpers.py +319 -0
  283. machineconfig/type_hinting/typedict/generators.py +231 -0
  284. machineconfig/type_hinting/typedict/polars_schema.py +24 -0
  285. machineconfig/type_hinting/typedict/polars_schema_typeddict.py +63 -0
  286. machineconfig/utils/accessories.py +31 -4
  287. machineconfig/utils/code.py +163 -51
  288. machineconfig/utils/files/ascii_art.py +11 -15
  289. machineconfig/utils/files/headers.py +6 -7
  290. machineconfig/utils/files/read.py +8 -1
  291. machineconfig/utils/installer_utils/github_release_bulk.py +95 -138
  292. machineconfig/utils/installer_utils/github_release_scraper.py +99 -0
  293. machineconfig/utils/installer_utils/install_from_url.py +183 -0
  294. machineconfig/utils/installer_utils/installer_class.py +53 -102
  295. machineconfig/utils/installer_utils/installer_cli.py +161 -0
  296. machineconfig/utils/installer_utils/installer_helper.py +129 -0
  297. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +42 -91
  298. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +20 -65
  299. machineconfig/utils/io.py +94 -9
  300. machineconfig/utils/links.py +56 -38
  301. machineconfig/utils/meta.py +38 -21
  302. machineconfig/utils/options.py +81 -23
  303. machineconfig/utils/options_utils/__init__.py +0 -0
  304. machineconfig/utils/options_utils/options_tv_linux.py +211 -0
  305. machineconfig/utils/options_utils/options_tv_windows.py +88 -0
  306. machineconfig/utils/options_utils/tv_options.py +37 -0
  307. machineconfig/utils/path_extended.py +52 -102
  308. machineconfig/utils/path_helper.py +76 -23
  309. machineconfig/utils/procs.py +1 -1
  310. machineconfig/utils/scheduler.py +26 -53
  311. machineconfig/utils/scheduling.py +0 -2
  312. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  313. machineconfig/utils/schemas/layouts/layout_types.py +1 -1
  314. machineconfig/utils/source_of_truth.py +6 -1
  315. machineconfig/utils/ssh.py +216 -419
  316. machineconfig/utils/ssh_utils/abc.py +5 -0
  317. machineconfig/utils/ssh_utils/copy_from_here.py +116 -0
  318. machineconfig/utils/ssh_utils/copy_to_here.py +303 -0
  319. machineconfig/utils/ssh_utils/utils.py +158 -0
  320. machineconfig/utils/ssh_utils/wsl.py +147 -0
  321. machineconfig/utils/ssh_utils/wsl_helper.py +217 -0
  322. machineconfig/utils/terminal.py +1 -0
  323. machineconfig/utils/upgrade_packages.py +107 -35
  324. machineconfig/utils/ve.py +12 -4
  325. machineconfig-8.51.dist-info/METADATA +140 -0
  326. machineconfig-8.51.dist-info/RECORD +543 -0
  327. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/entry_points.txt +4 -1
  328. machineconfig/jobs/installer/check_installations.py +0 -248
  329. machineconfig/jobs/installer/custom/hx.py +0 -140
  330. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
  331. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  332. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  333. machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -7
  334. machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -14
  335. machineconfig/profile/backup.toml +0 -49
  336. machineconfig/profile/mapper.toml +0 -256
  337. machineconfig/scripts/linux/fzf2g +0 -21
  338. machineconfig/scripts/linux/fzfag +0 -17
  339. machineconfig/scripts/linux/fzffg +0 -25
  340. machineconfig/scripts/linux/fzfrga +0 -21
  341. machineconfig/scripts/linux/mcfgs +0 -38
  342. machineconfig/scripts/linux/other/share_smb +0 -1
  343. machineconfig/scripts/linux/other/switch_ip +0 -20
  344. machineconfig/scripts/linux/skrg +0 -4
  345. machineconfig/scripts/linux/warp-cli.sh +0 -122
  346. machineconfig/scripts/linux/z_ls +0 -104
  347. machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
  348. machineconfig/scripts/python/helpers_devops/cli_config.py +0 -120
  349. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -77
  350. machineconfig/scripts/python/helpers_devops/cli_data.py +0 -25
  351. machineconfig/scripts/python/helpers_devops/cli_nw.py +0 -73
  352. machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -181
  353. machineconfig/scripts/python/helpers_devops/cli_self.py +0 -122
  354. machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -104
  355. machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -221
  356. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -80
  357. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -3
  358. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
  359. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
  360. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
  361. machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
  362. machineconfig/scripts/python/helpers_fire/template.sh +0 -15
  363. machineconfig/scripts/python/helpers_navigator/__init__.py +0 -20
  364. machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -44
  365. machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -588
  366. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
  367. machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -76
  368. machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
  369. machineconfig/scripts/python/mcfg.py +0 -48
  370. machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
  371. machineconfig/scripts/python/nw/devops_add_identity.py +0 -82
  372. machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -134
  373. machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -391
  374. machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -338
  375. machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
  376. machineconfig/scripts/windows/fzfb.ps1 +0 -3
  377. machineconfig/scripts/windows/fzfg.ps1 +0 -2
  378. machineconfig/scripts/windows/fzfrga.bat +0 -20
  379. machineconfig/scripts/windows/mcfgs.ps1 +0 -17
  380. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
  381. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  382. machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
  383. machineconfig/settings/lf/windows/tst.ps1 +0 -1
  384. machineconfig/settings/yazi/yazi.toml +0 -4
  385. machineconfig/setup_linux/apps.sh +0 -66
  386. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  387. machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -30
  388. machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
  389. machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
  390. machineconfig/setup_mac/apps.sh +0 -73
  391. machineconfig/setup_mac/ssh/openssh_setup.sh +0 -114
  392. machineconfig/setup_windows/apps.ps1 +0 -62
  393. machineconfig/setup_windows/others/obs.ps1 +0 -4
  394. machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -29
  395. machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
  396. machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -37
  397. machineconfig/utils/installer_utils/installer.py +0 -225
  398. machineconfig/utils/tst.py +0 -20
  399. machineconfig-6.82.dist-info/METADATA +0 -82
  400. machineconfig-6.82.dist-info/RECORD +0 -441
  401. machineconfig/jobs/installer/{custom_dev → checks}/__init__.py +0 -0
  402. machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
  403. machineconfig/{scripts/python/helpers_cloud → jobs/installer/python_scripts}/__init__.py +0 -0
  404. machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
  405. machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
  406. machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
  407. machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
  408. machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
  409. machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
  410. machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
  411. machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
  412. machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/android.sh +0 -0
  413. machineconfig/jobs/{installer/linux_scripts → scripts/bash_scripts}/lid.sh +0 -0
  414. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_drive +0 -0
  415. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nw_drive +0 -0
  416. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_smb +0 -0
  417. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_cloud.sh +0 -0
  418. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_nfs +0 -0
  419. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/start_docker +0 -0
  420. machineconfig/{scripts → jobs/scripts/powershell_scripts}/Restore-ThunderbirdProfile.ps1 +0 -0
  421. machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/docker.ps1 +0 -0
  422. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nfs.ps1 +0 -0
  423. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nw.ps1 +0 -0
  424. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_smb.ps1 +0 -0
  425. machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/power_options.ps1 +0 -0
  426. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_cloud.cmd +0 -0
  427. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_smb.ps1 +0 -0
  428. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
  429. machineconfig/scripts/python/{helpers_croshell → ai/utils}/__init__.py +0 -0
  430. machineconfig/scripts/python/ai/{solutions/_shared.py → utils/shared.py} +0 -0
  431. machineconfig/scripts/python/{helpers_devops → graph}/__init__.py +0 -0
  432. machineconfig/scripts/python/{helpers_devops/themes → helpers}/__init__.py +0 -0
  433. machineconfig/scripts/python/{env_manager → helpers/helper_env}/__init__.py +0 -0
  434. machineconfig/scripts/python/{env_manager → helpers/helper_env}/path_manager_backend.py +0 -0
  435. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/__init__.py +0 -0
  436. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/__init__.py +0 -0
  437. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_help_search.py +0 -0
  438. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_load_balancer.py +0 -0
  439. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents/templates}/template.ps1 +0 -0
  440. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_cloud}/__init__.py +0 -0
  441. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_helpers.py +1 -1
  442. /machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers5.py +0 -0
  443. /machineconfig/scripts/python/{helpers_sessions → helpers/helpers_croshell}/__init__.py +0 -0
  444. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/pomodoro.py +0 -0
  445. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer.py +0 -0
  446. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer_template.py +0 -0
  447. /machineconfig/scripts/python/{nw → helpers/helpers_devops}/__init__.py +0 -0
  448. /machineconfig/{setup_windows/wt_and_pwsh → scripts/python/helpers/helpers_devops/themes}/__init__.py +0 -0
  449. /machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_pwsh_theme.ps1 +0 -0
  450. /machineconfig/scripts/python/{helpers_devops/themes/choose_starship_theme.ps1 → helpers/helpers_fire_command/__init__.py} +0 -0
  451. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/cloud_manager.py +0 -0
  452. /machineconfig/scripts/python/{helpers_fire_command/fire_jobs_streamlit_helper.py → helpers/helpers_fire_command/f.py} +0 -0
  453. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers/helpers_fire_command/fire_jobs_streamlit_helper.py} +0 -0
  454. /machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/search_bar.py +0 -0
  455. /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers/helpers_network/__init__.py} +0 -0
  456. /machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_nw_drive.py +0 -0
  457. /machineconfig/scripts/python/{nw → helpers/helpers_network}/onetimeshare.py +0 -0
  458. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/sync.py +0 -0
  459. /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
  460. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/WHEEL +0 -0
  461. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/top_level.txt +0 -0
@@ -1,248 +0,0 @@
1
-
2
- import platform
3
- from machineconfig.utils.source_of_truth import CONFIG_ROOT
4
-
5
-
6
- APP_SUMMARY_PATH = CONFIG_ROOT.joinpath(f"profile/records/{platform.system().lower()}/apps_summary_report.csv")
7
- # CLOUD: str = "gdw" # Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
8
- # # my onedrive doesn't allow sharing.
9
-
10
-
11
- # def scan(path: P, pct: float = 0.0):
12
- # import vt # vt-py
13
- # client = vt.Client(PathExtended.home().joinpath("dotfiles/creds/tokens/virustotal").read_text(encoding="utf-8").split("\n")[0])
14
- # console = Console()
15
- # console.rule(f"Scanning {path}. {pct:.2f}% done")
16
- # if path.is_dir():
17
- # print(f"📁 Skipping {path} as it is a directory.")
18
- # return None
19
- # with open(str(path), "rb") as f:
20
- # analysis = client.scan_file(f)
21
- # repeat_counter: int = 0
22
- # while True:
23
- # with console.status(f"waiting for scan of {path} ... "):
24
- # try:
25
- # anal = client.get_object("/analyses/{}", analysis.id)
26
- # if anal.status == "completed": break
27
- # except Exception as ex: # type: ignore
28
- # repeat_counter += 1
29
- # if repeat_counter > 2:
30
- # raise ValueError(f"❌ Error in scanning {path}") from ex
31
- # print("⚠️ Error in scanning, trying again...")
32
- # time.sleep(30)
33
-
34
- # # Convert results to list of dictionaries
35
- # results_data = list(anal.results.values())
36
- # malicious = []
37
- # for result_item in results_data:
38
- # # Convert result item to dictionary if it has attributes
39
- # if hasattr(result_item, '__dict__'):
40
- # result_dict = result_item.__dict__
41
- # else:
42
- # # Assume it already has the necessary attributes
43
- # result_dict = {
44
- # 'result': getattr(result_item, 'result', None),
45
- # 'category': getattr(result_item, 'category', 'unknown')
46
- # }
47
-
48
- # if result_dict.get('result') is None and result_dict.get('category') in ["undetected", "type-unsupported", "failure", "timeout", "confirmed-timeout"]:
49
- # continue
50
- # else:
51
- # pprint(result_dict, f"🔍 Found Category {result_dict.get('category')}")
52
- # malicious.append(result_item)
53
-
54
- # positive_pct: float = round(number=len(malicious) / len(results_data) * 100, ndigits=1)
55
- # print(f"""
56
- # {'=' * 50}
57
- # 🔬 SCAN RESULTS | Positive ratio: {positive_pct:.1f}%
58
- # {'=' * 50}
59
- # """)
60
- # return positive_pct, results_data
61
-
62
-
63
- # def main() -> None:
64
- # # Convert potential custom List types to plain Python lists
65
- # tmp_apps = get_installed_cli_apps()
66
- # apps_paths_tmp: list[PathExtended]
67
- # if hasattr(tmp_apps, "list"):
68
- # apps_paths_tmp = list(tmp_apps.list)
69
- # else:
70
- # try:
71
- # apps_paths_tmp = list(tmp_apps)
72
- # except TypeError:
73
- # apps_paths_tmp = [tmp_apps]
74
-
75
- # tmp_versions = INSTALL_VERSION_ROOT.search()
76
- # versions_files_paths: list[PathExtended]
77
- # if hasattr(tmp_versions, "list"):
78
- # versions_files_paths = list(tmp_versions.list)
79
- # else:
80
- # try:
81
- # versions_files_paths = list(tmp_versions)
82
- # except TypeError:
83
- # versions_files_paths = [tmp_versions]
84
-
85
- # app_versions: list[Optional[str]] = []
86
- # apps_paths_raw: list[PathExtended] = []
87
- # for an_app in apps_paths_tmp:
88
- # version_path = [x for x in versions_files_paths if x.stem == an_app.stem]
89
- # if len(version_path) == 1:
90
- # app_versions.append(version_path[0].read_text(encoding="utf-8"))
91
- # apps_paths_raw.append(an_app)
92
- # # if an_app.stem in versions_files_paths.stem:
93
- # # else:
94
- # # print(f"🤔 Cloud not find a documented version for installation of {an_app.stem}, trying to get it from the app itself.")
95
- # # tmp = Terminal().run(f"{an_app.stem} --version", shell="powershell").capture().op_if_successfull_or_default(strict_err=False, strict_returcode=False)
96
- # # if tmp is not None: tmp = tmp.split("\n")[0]
97
- # # print(f"➡️ Found version `{tmp}` for {an_app.stem}.")
98
- # # app_versions.append(None)
99
- # print(f"""
100
- # {'=' * 150}
101
- # 🔍 TOOL CHECK | Checking tools (#{len(apps_paths_tmp)}) collected from `{INSTALL_VERSION_ROOT}`
102
- # {'=' * 150}
103
- # """)
104
- # for path_item in apps_paths_raw:
105
- # print(path_item)
106
- # positive_pct: list[Optional[float]] = []
107
- # scan_time: list[str] = []
108
- # detailed_results: list[dict[str, Optional[list[Any]]]] = []
109
-
110
- # for idx, app in enumerate(apps_paths_raw):
111
- # try: res = scan(path=app, pct=idx / len(apps_paths_raw) * 100)
112
- # except ValueError as ve:
113
- # print(f"❌ ERROR | {ve}")
114
- # res = None
115
- # if res is None:
116
- # positive_pct.append(None)
117
- # detailed_results.append({app.stem: None})
118
- # else:
119
- # ppct, results_data = res
120
- # positive_pct.append(ppct)
121
- # detailed_results.append({app.stem: results_data})
122
- # scan_time.append(datetime.now().strftime("%Y-%m-%d %H:%M"))
123
-
124
- # # Create list of dictionaries instead of DataFrame
125
- # app_data = []
126
- # for i, app_path in enumerate(apps_paths_raw):
127
- # app_data.append({
128
- # "app_name": app_path.stem,
129
- # "version": app_versions[i],
130
- # "positive_pct": positive_pct[i],
131
- # "scan_time": scan_time[i],
132
- # "app_path": app_path.collapseuser(strict=False).as_posix()
133
- # })
134
-
135
- # # Add app URLs
136
- # for i, app_info in enumerate(tqdm(app_data, desc="Uploading apps")):
137
- # apps_safe_url = upload(PathExtended(app_info["app_path"]).expanduser())
138
- # app_info["app_url"] = apps_safe_url.as_posix() if (apps_safe_url is not None and type(apps_safe_url) is P) else str(apps_safe_url) if apps_safe_url is not None else ""
139
-
140
- # # Write to CSV using standard library
141
- # csv_path = APP_SUMMARY_PATH.with_suffix(".csv")
142
- # csv_path.parent.mkdir(parents=True, exist_ok=True)
143
- # with open(csv_path, 'w', newline='', encoding='utf-8') as csvfile:
144
- # if app_data:
145
- # fieldnames = app_data[0].keys()
146
- # writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
147
- # writer.writeheader()
148
- # writer.writerows(app_data)
149
-
150
- # # Create markdown table
151
- # def format_app_table_markdown(data: list[dict[str, Any]]) -> str:
152
- # if not data:
153
- # return ""
154
- # keys = list(data[0].keys())
155
- # header = "|" + "|".join(f" {key} " for key in keys) + "|"
156
- # separator = "|" + "|".join(" --- " for _ in keys) + "|"
157
- # rows = []
158
- # for row in data:
159
- # row_values = [f" {str(row.get(key, ''))} " for key in keys]
160
- # rows.append("|" + "|".join(row_values) + "|")
161
- # return "\n".join([header, separator] + rows)
162
-
163
- # markdown_content = format_app_table_markdown(app_data)
164
- # APP_SUMMARY_PATH.with_suffix(".md").write_text(markdown_content, encoding="utf-8")
165
-
166
- # print(f"""
167
- # {'=' * 150}
168
- # 📊 SAFETY REPORT | Summary of app scanning results
169
- # {'=' * 150}
170
- # """)
171
- # print(markdown_content)
172
-
173
-
174
- # def upload(path: PathExtended):
175
- # import call_function_with_timeout
176
- # set_time_out = call_function_with_timeout.SetTimeout
177
- # func_with_timeout = set_time_out(lambda: path.to_cloud(CLOUD, rel2home=True, share=True, os_specific=True), timeout=180)
178
- # is_done, _is_timeout, _erro_message, results = func_with_timeout()
179
- # if is_done: return results
180
- # else: return None
181
-
182
-
183
- # class precheckedPackages:
184
- # def __init__(self):
185
- # # Read CSV using standard library
186
- # self.data = []
187
- # if APP_SUMMARY_PATH.exists():
188
- # with open(APP_SUMMARY_PATH, 'r', encoding='utf-8') as csvfile:
189
- # reader = csv.DictReader(csvfile)
190
- # self.data = list(reader)
191
-
192
- # @staticmethod
193
- # def download_google_links(url: str):
194
- # # if "drive.google.com" in str(url): url = str(url).replace("open?", "uc?")
195
- # # else: raise NotImplementedError("Only google drive is supported for now.")
196
- # # return PathExtended(url).download(name=name)
197
- # gdrive_id = PathExtended(url).parts[-1].split("id=")[1]
198
- # result = PathExtended(gdown.download(id=gdrive_id)).absolute()
199
- # return result
200
-
201
- # @staticmethod
202
- # def install_cli_apps(app_url: str):
203
- # try:
204
- # exe = precheckedPackages.download_google_links(app_url)
205
- # except Exception as ex: # type: ignore
206
- # print(f"❌ ERROR | Failed downloading {app_url}: {ex}")
207
- # return None
208
- # if platform.system().lower() in ["linux", "darwin"]:
209
- # Terminal().run(f"chmod +x {exe}")
210
- # Terminal().run(f"mv {exe} /usr/local/bin/")
211
- # elif platform.system().lower() == "windows":
212
- # exe.move(folder=PathExtended.home().joinpath("AppData/Local/Microsoft/WindowsApps"), overwrite=True)
213
- # return True
214
-
215
- # def download_safe_apps(self, name: str="essentials"):
216
- # # if platform.system().lower() == "windows":
217
- # # from machineconfig.jobs.python.python_windows_installers_all import get_cli_py_installers
218
- # # cli_installers = get_cli_py_installers()
219
- # # elif platform.system().lower() == "linux":
220
- # # from machineconfig.jobs.python.python_linux_installers_all import get_cli_py_installers
221
- # # cli_installers = get_cli_py_installers()
222
- # # else: raise NotImplementedError(f"Platform {platform.system().lower()} is not supported yet.")
223
-
224
- # print(f"""
225
- # {'=' * 150}
226
- # 📥 DOWNLOAD | Downloading {len(self.data)} apps...
227
- # {'=' * 150}
228
- # """)
229
- # print(self.data)
230
- # app_urls = [item['app_url'] for item in self.data]
231
- # from concurrent.futures import ThreadPoolExecutor
232
- # with ThreadPoolExecutor(max_workers=20) as executor:
233
- # _res = list(executor.map(precheckedPackages.install_cli_apps, app_urls))
234
- # else:
235
- # app_items = [item for item in self.data if item['app_name'] == name]
236
- # if not app_items:
237
- # raise ValueError(f"App '{name}' not found in data")
238
- # app_url = app_items[0]['app_url']
239
- # _res = precheckedPackages.install_cli_apps(app_url=app_url)
240
-
241
- # # print("\n" * 3)
242
- # # for item_flag, item_name in zip(res, self.df["app_name"]):
243
- # # if item_flag: print(f"✅ {item_name} is installed. 😁")
244
- # # else: print(f"❌ {item_name} failed to install for reasons explained in the log above, try manually.")
245
-
246
-
247
- # if __name__ == '__main__':
248
- # pass
@@ -1,140 +0,0 @@
1
- """
2
- Installers do not add runtime files to the machine, hence this script.
3
- """
4
-
5
- from machineconfig.utils.path_extended import PathExtended
6
- from machineconfig.utils.installer_utils.installer_abc import WINDOWS_INSTALL_PATH
7
- from typing import Optional
8
- import platform
9
-
10
- from machineconfig.utils.installer_utils.installer_abc import LINUX_INSTALL_PATH
11
- from machineconfig.utils.installer_utils.installer_class import Installer
12
- from rich.console import Console
13
- from rich.panel import Panel
14
- from machineconfig.utils.schemas.installer.installer_types import InstallerData
15
-
16
-
17
- config_dict: InstallerData = {
18
- "appName": "hx",
19
- "repoURL": "CMD",
20
- "doc": "Helix is a post-modern modal text editor.",
21
- "fileNamePattern": {
22
- "amd64": {
23
- "linux": "hx-linux-amd64.tar.xz",
24
- "macos": "hx-macos-amd64.tar.xz",
25
- "windows": "hx-windows-amd64.zip",
26
- },
27
- "arm64": {
28
- "linux": "hx-linux-arm64.tar.xz",
29
- "macos": "hx-macos-arm64.tar.xz",
30
- "windows": "hx-windows-arm64.zip",
31
- },
32
- },
33
- }
34
-
35
-
36
- def main(version: Optional[str], install_lib: bool = False):
37
- console = Console()
38
-
39
- console.print(Panel(f"HELIX EDITOR INSTALLER 🧬\nPlatform: {platform.system()}\nVersion: {'latest' if version is None else version}", title="Installer", expand=False))
40
-
41
- config_dict_copy = config_dict.copy()
42
- config_dict_copy["repoURL"] = "https://github.com/helix-editor/helix"
43
- inst = Installer(installer_data=config_dict_copy)
44
-
45
- print("\n📥 [Step 1/5] Downloading Helix editor...")
46
- downloaded, _version_to_be_installed = inst.download(version=version)
47
- print(" ✨ Download complete.")
48
-
49
- print("\n🔍 [Step 2/5] Locating executable and components...")
50
- if platform.system() == "Windows":
51
- hx_file_search = downloaded.search("hx.exe", folders=False, files=True, r=True)
52
- else:
53
- hx_file_search = downloaded.search("hx", folders=False, files=True, r=True)
54
-
55
- if not hx_file_search:
56
- console.print(Panel("❌ ERROR: Could not find 'hx' executable in downloaded files.", title="Error", expand=False))
57
- raise FileNotFoundError(f"Could not find 'hx' executable in {downloaded.name}")
58
-
59
- assert len(hx_file_search) == 1, f"Expected 1 'hx' executable, found {len(hx_file_search)}"
60
- hx_file = hx_file_search[0]
61
- contrib = hx_file.parent / "contrib"
62
- runtime = contrib.parent / "runtime"
63
-
64
- if not runtime.exists():
65
- console.print(Panel(f"❌ ERROR: 'runtime' directory not found at expected location: {runtime}", title="Error", expand=False))
66
- raise FileNotFoundError(f"'runtime' directory not found at expected location: {runtime}")
67
- if not contrib.exists():
68
- console.print(Panel(f"❌ ERROR: 'contrib' directory not found at expected location: {contrib}", title="Error", expand=False))
69
- raise FileNotFoundError(f"'contrib' directory not found at expected location: {contrib}")
70
- print(" ✨ Executable and components located.")
71
-
72
- print("\n🗑️ [Step 3/5] Cleaning up previous installation (if any)...")
73
- runtime_path = PathExtended.home().joinpath(".config/helix/runtime")
74
- contrib_path = PathExtended.home().joinpath(".config/helix/contrib")
75
- runtime_path.delete(sure=True, verbose=False)
76
- contrib_path.delete(sure=True, verbose=False)
77
- print(f" ✨ Cleaned '{runtime_path}' and '{contrib_path}'.")
78
-
79
- print("\n📦 [Step 4/5] Installing Helix components...")
80
- target_config_dir = PathExtended.home().joinpath(".config/helix").expanduser()
81
- target_config_dir.mkdir(parents=True, exist_ok=True)
82
-
83
- if platform.system() in ["Linux", "Darwin"]:
84
- target_bin_path = PathExtended(LINUX_INSTALL_PATH) if platform.system() == "Linux" else PathExtended("/usr/local/bin")
85
- exe_name = "hx"
86
- hx_file.move(folder=target_bin_path, overwrite=True)
87
- if install_lib:
88
- contrib.move(folder=target_config_dir, overwrite=True)
89
- runtime.move(folder=target_config_dir, overwrite=True)
90
- system_name = "Linux" if platform.system() == "Linux" else "macOS"
91
- console.print(
92
- Panel(
93
- f"""✅ SUCCESS | Helix editor installed successfully on {system_name}!
94
-
95
- 📂 Executable: {target_bin_path / exe_name}
96
- 🔧 Config: {target_config_dir}""",
97
- title="Success",
98
- expand=False,
99
- )
100
- )
101
- elif platform.system() == "Windows":
102
- target_bin_path = PathExtended(WINDOWS_INSTALL_PATH)
103
- exe_name = "hx.exe"
104
- hx_file.move(folder=target_bin_path, overwrite=True)
105
- if install_lib:
106
- contrib.move(folder=target_config_dir, overwrite=True)
107
- runtime.move(folder=target_config_dir, overwrite=True)
108
- console.print(
109
- Panel(
110
- f"""✅ SUCCESS | Helix editor installed successfully on Windows!
111
- 📂 Executable: {target_bin_path / exe_name}
112
- 🔧 Config: {target_config_dir}""",
113
- title="Success",
114
- expand=False,
115
- )
116
- )
117
- else:
118
- console.print(
119
- Panel(
120
- f"""⚠️ WARNING | Unsupported operating system: {platform.system()}
121
- | Installation aborted.""",
122
- title="Warning",
123
- expand=False,
124
- )
125
- )
126
- print("\n🧹 [Step 5/5] Cleaning up temporary download files...")
127
- downloaded.delete(sure=True)
128
- print(" ✨ Cleanup complete.")
129
- return f"Error: Unsupported OS: {platform.system()}"
130
-
131
- print("\n🧹 [Step 5/5] Cleaning up temporary download files...")
132
- downloaded.delete(sure=True)
133
- print(" ✨ Cleanup complete.")
134
-
135
- console.print(Panel("🎉 Installation Finished Successfully! 🎉", title="Finished", expand=False))
136
- return ""
137
-
138
-
139
- if __name__ == "__main__":
140
- main(version=None)
@@ -1,41 +0,0 @@
1
- #!/bin/bash
2
- # 🐘 POSTGRESQL INSTALLATION SCRIPT 🐘
3
- # This script installs PostgreSQL database on Ubuntu/Debian systems
4
- # Reference: https://www.postgresql.org/download/linux/ubuntu/
5
-
6
- echo """🚀 STARTING POSTGRESQL INSTALLATION | Setting up PostgreSQL database
7
- """
8
-
9
- # Install PostgreSQL common package
10
- echo "📥 Installing PostgreSQL common package..."
11
- sudo nala install postgresql-common -y
12
-
13
- # Run the PostgreSQL repository setup script
14
- echo "🔧 Setting up PostgreSQL repository..."
15
- sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y
16
-
17
- # Install PostgreSQL 17
18
- echo """📦 INSTALLING POSTGRESQL | Installing PostgreSQL 17
19
- """
20
- sudo nala install postgresql-17 -y
21
- # Alternative: sudo nala install postgresql -y
22
-
23
- echo """✅ INSTALLATION COMPLETE | PostgreSQL has been installed successfully
24
- """
25
- echo "ℹ️ PostgreSQL service should be running automatically"
26
- echo "💡 Connect to default 'postgres' database with: sudo -u postgres psql"
27
- echo "🔄 To check service status: sudo systemctl status postgresql"
28
-
29
- # REMOVAL INSTRUCTIONS:
30
- echo """#-----------------------------------------------------------------------
31
- 📝 NOTES | For future reference
32
- #-----------------------------------------------------------------------
33
- To remove PostgreSQL completely:
34
- sudo apt-get --purge remove postgresql postgresql-*
35
- """
36
-
37
- # Alternative installation method (commented out):
38
- # sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $ubuntu_version-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
39
- # curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
40
- # sudo nala update
41
-
@@ -1,71 +0,0 @@
1
- #!/bin/bash
2
- # ⏱️ TIMESCALEDB INSTALLATION SCRIPT ⏱️
3
- # This script installs TimescaleDB on Ubuntu/Debian-based Linux distributions
4
- # Reference: https://docs.timescale.com/self-hosted/latest/install/installation-linux/
5
-
6
- echo """🔍 DETECTING SYSTEM | Identifying OS distribution version
7
- """
8
-
9
- get_ubuntu_base_version() {
10
- local os_codename=$(lsb_release -cs)
11
- case "$os_codename" in
12
- "wilma")
13
- echo "noble" # Map Mint Wilma to the base image Ubuntu 24.04 LTS
14
- ;;
15
- "virginia")
16
- echo "jammy" # Map Mint Virginia to the base image Ubuntu 22.04 LTS
17
- ;;
18
- *)
19
- echo "$os_codename"
20
- ;;
21
- esac
22
- }
23
-
24
- ubuntu_version=$(get_ubuntu_base_version)
25
- echo "📋 Detected distribution: $ubuntu_version"
26
-
27
- echo """🐘 INSTALLING POSTGRESQL | Setting up PostgreSQL dependencies
28
- """
29
-
30
- # Add PostgreSQL repository setup
31
- echo "🔧 Setting up PostgreSQL repository..."
32
- sudo nala install postgresql-common -y
33
- sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y
34
-
35
- echo """🔑 ADDING REPOSITORY KEYS | Setting up TimescaleDB repository
36
- """
37
-
38
- # Add TimescaleDB repository
39
- echo "📝 Adding TimescaleDB repository to sources list..."
40
- echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $ubuntu_version main" | sudo tee /etc/apt/sources.list.d/timescaledb.list
41
-
42
- echo "🔐 Adding TimescaleDB GPG key..."
43
- wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
44
-
45
- echo """📦 INSTALLING TIMESCALEDB | Updating and installing packages
46
- """
47
-
48
- # Update package lists
49
- echo "🔄 Updating package lists..."
50
- sudo nala update
51
-
52
- # Install TimescaleDB with PostgreSQL 16
53
- echo "📥 Installing PostgreSQL 16 and TimescaleDB..."
54
- sudo nala install -y postgresql-16 postgresql-client-16 timescaledb-2-postgresql-16
55
-
56
- echo """⚙️ CONFIGURING TIMESCALEDB | Optimizing database settings
57
- """
58
-
59
- # Run TimescaleDB tuning tool
60
- echo "🔧 Running TimescaleDB tuning utility..."
61
- sudo timescaledb-tune
62
-
63
- # Restart PostgreSQL service
64
- echo "🔄 Restarting PostgreSQL service..."
65
- sudo systemctl restart postgresql
66
-
67
- echo """✅ INSTALLATION COMPLETE | TimescaleDB has been installed successfully
68
- """
69
- echo "🚀 To connect to PostgreSQL, run: sudo -u postgres psql"
70
- echo "💡 To enable TimescaleDB in a database, run: CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;"
71
- echo "ℹ️ For more information, visit: https://docs.timescale.com/self-hosted/latest/install/"
@@ -1,12 +0,0 @@
1
-
2
- # install https://visualstudio.microsoft.com/visual-cpp-build-tools/
3
- # include
4
- # winget install Microsoft.VisualStudio.2022.BuildTools
5
- # winget install Microsoft.VC++2015-2022Redist-x86
6
-
7
-
8
- uv pip install --global-option=build_ext --global-option="-IC:\Program Files\Graphviz\include" --global-option="-LC:\Program Files\Graphviz\lib" pygraphviz
9
- # not including the options as above (from https://pygraphviz.github.io/documentation/stable/install.html)
10
- # would result in an error like this: pygraphviz/graphviz_wrap.c(2711): fatal error C1083: Cannot open include file: 'graphviz/cgraph.h': No such file or directory
11
-
12
-
@@ -1,7 +0,0 @@
1
-
2
- $sshfile=""
3
- $ErrorActionPreference = "Stop"
4
- $sshd_dir = "$env:ProgramData\ssh"
5
- cp "$sshd_dir\administrators_authorized_keys" "$sshd_dir\administrators_authorized_keys.orig"
6
- Get-Content $sshfile >> "$sshd_dir\administrators_authorized_keys"
7
- Restart-Service sshd -Force
@@ -1,14 +0,0 @@
1
-
2
- # This is the Windows equivalent of copy-ssh-id on Linux.
3
- # Just like the original function, it is a convenient way of doing two things in one go:
4
- # 1- copy a certain public key to the remote machine.
5
- # scp ~/.ssh/id_rsa.pub $remote_user@$remote_host:~/.ssh/authorized_keys
6
- # 2- Store the value on the remote in a file called .ssh/authorized_keys
7
- # ssh $remote_user@$remote_host "echo $public_key >> ~/.ssh/authorized_keys"
8
- # Idea from: https://www.chrisjhart.com/Windows-10-ssh-copy-id/
9
-
10
- $key_value = cat ($env:USERPROFILE + "\.ssh\id_rsa.pub")
11
- ssh $args[0] "powershell.exe -Command type $key_value >> .ssh/authorized_keys"
12
-
13
- $my_keys='https://github.com/thisismygitrepo.keys'
14
- (Invoke-WebRequest $my_keys).Content >> .ssh/authorized_keys
@@ -1,49 +0,0 @@
1
-
2
- # locations to be backed up to the cloud.
3
-
4
- [thunderbird_windows]
5
- path = '~/AppData/Roaming/Thunderbird/Profiles'
6
- encrypt = 'True'
7
- zip = 'True'
8
- rel2home = 'True'
9
- os_specific = 'True'
10
-
11
-
12
- [thunderbird_linux]
13
- path = '~/.thunderbird'
14
- encrypt = 'True'
15
- zip = 'True'
16
- rel2home = 'True'
17
- os_specific = 'True'
18
-
19
-
20
- [zoxide_windows]
21
- path = '~/AppData/Local/zoxide/db.zo'
22
- encrypt = 'False'
23
- zip = 'False'
24
- rel2home = 'True'
25
- os_specific = 'True'
26
-
27
-
28
- [zoxide_linux]
29
- path = '~/.local/share/zoxide/db.zo'
30
- encrypt = 'False'
31
- zip = 'False'
32
- rel2home = 'True'
33
- os_specific = 'True'
34
-
35
-
36
- #[dotfiles]
37
- # path = '~/dotfiles'
38
- # encrypt = 'True'
39
- # zip = 'True'
40
- # rel2home = 'True'
41
- # os_specific = 'True'
42
-
43
-
44
- [ipython]
45
- path = '~/.ipython'
46
- encrypt = 'True'
47
- zip = 'True'
48
- rel2home = 'True'
49
- os_specific = 'False'