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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of machineconfig might be problematic. Click here for more details.

Files changed (465) hide show
  1. machineconfig/__init__.py +0 -28
  2. machineconfig/cluster/remote/distribute.py +0 -1
  3. machineconfig/cluster/remote/file_manager.py +0 -2
  4. machineconfig/cluster/remote/script_execution.py +1 -2
  5. machineconfig/cluster/sessions_managers/{enhanced_command_runner.py → helpers/enhanced_command_runner.py} +4 -6
  6. machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +145 -0
  7. machineconfig/cluster/sessions_managers/utils/load_balancer.py +53 -0
  8. machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
  9. machineconfig/cluster/sessions_managers/wt_local.py +128 -330
  10. machineconfig/cluster/sessions_managers/wt_local_manager.py +53 -187
  11. machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
  12. machineconfig/cluster/sessions_managers/wt_remote_manager.py +49 -197
  13. machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +6 -19
  14. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  15. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  16. machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +4 -2
  17. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  18. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  19. machineconfig/cluster/sessions_managers/zellij_local.py +81 -375
  20. machineconfig/cluster/sessions_managers/zellij_local_manager.py +22 -172
  21. machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
  22. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +13 -10
  23. machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +4 -8
  24. machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +5 -20
  25. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -9
  26. machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +3 -1
  27. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +298 -0
  28. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +77 -0
  29. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +228 -0
  30. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +165 -0
  31. machineconfig/jobs/{python → installer}/check_installations.py +7 -21
  32. machineconfig/jobs/installer/custom/boxes.py +61 -0
  33. machineconfig/jobs/installer/custom/gh.py +128 -0
  34. machineconfig/jobs/{python_custom_installers → installer/custom}/hx.py +84 -18
  35. machineconfig/jobs/installer/custom_dev/alacritty.py +86 -0
  36. machineconfig/jobs/installer/custom_dev/brave.py +82 -0
  37. machineconfig/jobs/installer/custom_dev/bypass_paywall.py +59 -0
  38. machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
  39. machineconfig/jobs/installer/custom_dev/code.py +63 -0
  40. machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/cursor.py +7 -7
  41. machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
  42. machineconfig/jobs/installer/custom_dev/espanso.py +117 -0
  43. machineconfig/jobs/installer/custom_dev/goes.py +68 -0
  44. machineconfig/jobs/installer/custom_dev/lvim.py +89 -0
  45. machineconfig/jobs/installer/custom_dev/nerdfont.py +111 -0
  46. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +149 -0
  47. machineconfig/jobs/installer/custom_dev/redis.py +88 -0
  48. machineconfig/jobs/installer/custom_dev/sysabc.py +145 -0
  49. machineconfig/jobs/installer/custom_dev/wezterm.py +92 -0
  50. machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/winget.py +2 -3
  51. machineconfig/jobs/installer/installer_data.json +3440 -0
  52. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/brave.sh +4 -14
  53. machineconfig/jobs/{python_custom_installers/scripts/linux/warp-cli.sh → installer/linux_scripts/cloudflare_warp_cli.sh} +5 -17
  54. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/docker.sh +6 -18
  55. machineconfig/jobs/installer/linux_scripts/docker_start.sh +37 -0
  56. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/edge.sh +3 -11
  57. machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +2 -8
  58. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/nerdfont.sh +5 -17
  59. machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +2 -8
  60. machineconfig/jobs/installer/linux_scripts/ngrok.sh +6 -0
  61. machineconfig/jobs/installer/linux_scripts/q.sh +9 -0
  62. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/redis.sh +6 -17
  63. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/vscode.sh +5 -17
  64. machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/wezterm.sh +4 -12
  65. machineconfig/jobs/installer/package_groups.py +255 -0
  66. machineconfig/logger.py +0 -1
  67. machineconfig/profile/backup.toml +49 -0
  68. machineconfig/profile/bash_shell_profiles.md +11 -0
  69. machineconfig/profile/create_helper.py +74 -0
  70. machineconfig/profile/create_links.py +288 -0
  71. machineconfig/profile/create_links_export.py +100 -0
  72. machineconfig/profile/create_shell_profile.py +136 -0
  73. machineconfig/profile/mapper.toml +258 -0
  74. machineconfig/scripts/__init__.py +0 -4
  75. machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
  76. machineconfig/scripts/linux/wrap_mcfg +47 -0
  77. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  78. machineconfig/scripts/python/agents.py +198 -0
  79. machineconfig/scripts/python/ai/command_runner/command_runner.sh +9 -0
  80. machineconfig/scripts/python/ai/command_runner/prompt.txt +9 -0
  81. machineconfig/scripts/python/ai/generate_files.py +307 -42
  82. machineconfig/scripts/python/ai/{mcinit.py → initai.py} +3 -38
  83. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +114 -0
  84. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +88 -22
  85. machineconfig/scripts/python/ai/solutions/_shared.py +9 -1
  86. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -1
  87. machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
  88. machineconfig/scripts/python/ai/solutions/gemini/settings.json +1 -1
  89. machineconfig/scripts/python/ai/solutions/generic.py +27 -4
  90. machineconfig/scripts/python/ai/vscode_tasks.py +37 -0
  91. machineconfig/scripts/python/cloud.py +29 -0
  92. machineconfig/scripts/python/croshell.py +129 -198
  93. machineconfig/scripts/python/define.py +31 -0
  94. machineconfig/scripts/python/devops.py +45 -131
  95. machineconfig/scripts/python/devops_navigator.py +6 -0
  96. machineconfig/scripts/python/env_manager/__init__.py +1 -0
  97. machineconfig/scripts/python/env_manager/path_manager_backend.py +47 -0
  98. machineconfig/scripts/python/env_manager/path_manager_tui.py +228 -0
  99. machineconfig/scripts/python/fire_jobs.py +166 -235
  100. machineconfig/scripts/python/ftpx.py +164 -100
  101. machineconfig/scripts/python/helpers/ast_search.py +74 -0
  102. machineconfig/scripts/python/helpers/repo_rag.py +325 -0
  103. machineconfig/scripts/python/helpers/symantic_search.py +25 -0
  104. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
  105. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +37 -0
  106. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
  107. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +42 -0
  108. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  109. machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +110 -0
  110. machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +34 -0
  111. machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +22 -0
  112. machineconfig/scripts/python/helpers_agents/templates/prompt.txt +6 -0
  113. machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
  114. machineconfig/scripts/python/helpers_agents/templates/template.sh +24 -0
  115. machineconfig/scripts/python/{cloud_copy.py → helpers_cloud/cloud_copy.py} +52 -39
  116. machineconfig/scripts/python/{cloud_mount.py → helpers_cloud/cloud_mount.py} +13 -18
  117. machineconfig/scripts/python/helpers_cloud/cloud_sync.py +81 -0
  118. machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +3 -3
  119. machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
  120. machineconfig/scripts/python/{scheduler.py → helpers_croshell/scheduler.py} +0 -1
  121. machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +32 -20
  122. machineconfig/scripts/python/helpers_devops/cli_config.py +95 -0
  123. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +89 -0
  124. machineconfig/scripts/python/helpers_devops/cli_data.py +25 -0
  125. machineconfig/scripts/python/helpers_devops/cli_nw.py +134 -0
  126. machineconfig/scripts/python/helpers_devops/cli_repos.py +182 -0
  127. machineconfig/scripts/python/helpers_devops/cli_self.py +134 -0
  128. machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
  129. machineconfig/scripts/python/helpers_devops/cli_share_server.py +141 -0
  130. machineconfig/scripts/python/helpers_devops/cli_terminal.py +156 -0
  131. machineconfig/scripts/python/helpers_devops/cli_utils.py +96 -0
  132. machineconfig/scripts/python/{devops_backup_retrieve.py → helpers_devops/devops_backup_retrieve.py} +7 -10
  133. machineconfig/scripts/python/helpers_devops/devops_status.py +511 -0
  134. machineconfig/scripts/python/helpers_devops/devops_update_repos.py +269 -0
  135. machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +81 -0
  136. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
  137. machineconfig/scripts/python/{choose_wezterm_theme.py → helpers_devops/themes/choose_wezterm_theme.py} +2 -2
  138. machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -2
  139. machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -89
  140. machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +145 -0
  141. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +110 -0
  142. machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
  143. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfag +1 -1
  144. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +1 -1
  145. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfrga +1 -1
  146. machineconfig/scripts/python/helpers_navigator/__init__.py +20 -0
  147. machineconfig/scripts/python/helpers_navigator/command_builder.py +111 -0
  148. machineconfig/scripts/python/helpers_navigator/command_detail.py +44 -0
  149. machineconfig/scripts/python/helpers_navigator/command_tree.py +620 -0
  150. machineconfig/scripts/python/helpers_navigator/data_models.py +28 -0
  151. machineconfig/scripts/python/helpers_navigator/main_app.py +272 -0
  152. machineconfig/scripts/python/helpers_navigator/search_bar.py +15 -0
  153. machineconfig/scripts/python/helpers_repos/action.py +209 -0
  154. machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
  155. machineconfig/scripts/python/{repos_helper_clone.py → helpers_repos/clone.py} +6 -7
  156. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
  157. machineconfig/scripts/python/helpers_repos/count_lines.py +348 -0
  158. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +17 -0
  159. machineconfig/scripts/python/helpers_repos/entrypoint.py +77 -0
  160. machineconfig/scripts/python/helpers_repos/grource.py +340 -0
  161. machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +7 -4
  162. machineconfig/scripts/python/helpers_repos/sync.py +66 -0
  163. machineconfig/scripts/python/{repos_helper_update.py → helpers_repos/update.py} +3 -3
  164. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +58 -0
  165. machineconfig/scripts/python/helpers_utils/download.py +152 -0
  166. machineconfig/scripts/python/helpers_utils/path.py +108 -0
  167. machineconfig/scripts/python/interactive.py +187 -0
  168. machineconfig/scripts/python/mcfg_entry.py +63 -0
  169. machineconfig/scripts/python/msearch.py +40 -0
  170. machineconfig/scripts/python/{devops_add_identity.py → nw/devops_add_identity.py} +1 -3
  171. machineconfig/scripts/python/{devops_add_ssh_key.py → nw/devops_add_ssh_key.py} +74 -44
  172. machineconfig/scripts/{linux → python/nw}/mount_nfs +1 -1
  173. machineconfig/scripts/python/{mount_nfs.py → nw/mount_nfs.py} +19 -16
  174. machineconfig/scripts/{linux → python/nw}/mount_nw_drive +1 -2
  175. machineconfig/scripts/python/{mount_ssh.py → nw/mount_ssh.py} +7 -8
  176. machineconfig/scripts/python/{onetimeshare.py → nw/onetimeshare.py} +0 -1
  177. machineconfig/scripts/python/nw/ssh_debug_linux.py +391 -0
  178. machineconfig/scripts/python/nw/ssh_debug_windows.py +338 -0
  179. machineconfig/scripts/python/{wifi_conn.py → nw/wifi_conn.py} +1 -51
  180. machineconfig/scripts/python/nw/wsl_windows_transfer.py +67 -0
  181. machineconfig/scripts/python/sessions.py +167 -0
  182. machineconfig/scripts/python/terminal.py +127 -0
  183. machineconfig/scripts/python/utils.py +66 -0
  184. machineconfig/scripts/windows/mounts/Restore-ThunderbirdProfile.ps1 +92 -0
  185. machineconfig/scripts/windows/{mount_nfs.ps1 → mounts/mount_nfs.ps1} +1 -3
  186. machineconfig/scripts/windows/{mount_ssh.ps1 → mounts/mount_ssh.ps1} +1 -1
  187. machineconfig/scripts/windows/{share_smb.ps1 → mounts/share_smb.ps1} +0 -6
  188. machineconfig/scripts/windows/wrap_mcfg.ps1 +60 -0
  189. machineconfig/settings/broot/br.sh +0 -4
  190. machineconfig/settings/broot/conf.toml +1 -1
  191. machineconfig/settings/helix/config.toml +16 -0
  192. machineconfig/settings/helix/languages.toml +13 -4
  193. machineconfig/settings/helix/yazi-picker.sh +12 -0
  194. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  195. machineconfig/settings/lf/linux/exe/previewer.sh +9 -3
  196. machineconfig/settings/lf/linux/lfrc +10 -12
  197. machineconfig/settings/lf/windows/fzf_edit.ps1 +2 -2
  198. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  199. machineconfig/settings/lf/windows/lfrc +18 -38
  200. machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
  201. machineconfig/settings/linters/.ruff.toml +1 -1
  202. machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -6
  203. machineconfig/settings/marimo/marimo.toml +80 -0
  204. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  205. machineconfig/settings/pistol/pistol.conf +1 -1
  206. machineconfig/settings/shells/bash/init.sh +55 -31
  207. machineconfig/settings/shells/nushell/config.nu +1 -34
  208. machineconfig/settings/shells/nushell/init.nu +127 -0
  209. machineconfig/settings/shells/pwsh/init.ps1 +61 -43
  210. machineconfig/settings/shells/starship/starship.toml +16 -0
  211. machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
  212. machineconfig/settings/shells/wt/settings.json +32 -17
  213. machineconfig/settings/shells/zsh/init.sh +89 -0
  214. machineconfig/settings/svim/linux/init.toml +0 -4
  215. machineconfig/settings/svim/windows/init.toml +0 -3
  216. machineconfig/settings/yazi/init.lua +57 -0
  217. machineconfig/settings/yazi/keymap_linux.toml +79 -0
  218. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  219. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  220. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  221. machineconfig/settings/yazi/yazi.toml +14 -1
  222. machineconfig/setup_linux/__init__.py +10 -0
  223. machineconfig/setup_linux/apps_desktop.sh +89 -0
  224. machineconfig/setup_linux/apps_gui.sh +64 -0
  225. machineconfig/setup_linux/{nix → others}/cli_installation.sh +9 -29
  226. machineconfig/setup_linux/ssh/openssh_all.sh +25 -0
  227. machineconfig/setup_linux/ssh/openssh_wsl.sh +38 -0
  228. machineconfig/setup_linux/uv.sh +15 -0
  229. machineconfig/setup_linux/web_shortcuts/interactive.sh +28 -203
  230. machineconfig/setup_mac/__init__.py +16 -0
  231. machineconfig/setup_mac/apps_gui.sh +248 -0
  232. machineconfig/setup_mac/ssh/openssh_setup.sh +114 -0
  233. machineconfig/setup_mac/uv.sh +36 -0
  234. machineconfig/setup_windows/__init__.py +8 -0
  235. machineconfig/setup_windows/others/power_options.ps1 +7 -0
  236. machineconfig/setup_windows/ssh/add-sshkey.ps1 +29 -0
  237. machineconfig/setup_windows/ssh/add_identity.ps1 +11 -0
  238. machineconfig/setup_windows/ssh/openssh-server.ps1 +37 -0
  239. machineconfig/setup_windows/uv.ps1 +17 -0
  240. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +28 -189
  241. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  242. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +37 -23
  243. machineconfig/utils/accessories.py +52 -12
  244. machineconfig/utils/cloud/onedrive/README.md +139 -0
  245. machineconfig/utils/code.py +140 -93
  246. machineconfig/utils/files/art/fat_croco.txt +10 -0
  247. machineconfig/utils/files/art/halfwit_croco.txt +9 -0
  248. machineconfig/utils/files/art/happy_croco.txt +22 -0
  249. machineconfig/utils/files/art/water_croco.txt +11 -0
  250. machineconfig/utils/files/ascii_art.py +118 -0
  251. machineconfig/utils/files/dbms.py +257 -0
  252. machineconfig/utils/files/headers.py +68 -0
  253. machineconfig/utils/files/ouch/decompress.py +45 -0
  254. machineconfig/utils/files/read.py +95 -0
  255. machineconfig/utils/installer_utils/github_release_bulk.py +188 -0
  256. machineconfig/utils/installer_utils/install_from_url.py +180 -0
  257. machineconfig/utils/installer_utils/installer_class.py +239 -316
  258. machineconfig/utils/installer_utils/installer_cli.py +186 -0
  259. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +90 -5
  260. machineconfig/utils/installer_utils/installer_runner.py +191 -0
  261. machineconfig/utils/io.py +77 -24
  262. machineconfig/utils/links.py +309 -100
  263. machineconfig/utils/meta.py +255 -0
  264. machineconfig/utils/notifications.py +1 -1
  265. machineconfig/utils/options.py +19 -47
  266. machineconfig/utils/path_extended.py +111 -121
  267. machineconfig/utils/path_helper.py +75 -22
  268. machineconfig/utils/procs.py +50 -74
  269. machineconfig/utils/scheduler.py +94 -97
  270. machineconfig/utils/scheduling.py +0 -3
  271. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +5 -17
  272. machineconfig/utils/schemas/installer/installer_types.py +28 -6
  273. machineconfig/utils/schemas/layouts/layout_types.py +34 -1
  274. machineconfig/utils/source_of_truth.py +3 -6
  275. machineconfig/utils/ssh.py +742 -254
  276. machineconfig/utils/ssh_utils/utils.py +0 -0
  277. machineconfig/utils/terminal.py +3 -140
  278. machineconfig/utils/tst.py +20 -0
  279. machineconfig/utils/upgrade_packages.py +109 -28
  280. machineconfig/utils/ve.py +13 -5
  281. machineconfig-7.69.dist-info/METADATA +124 -0
  282. machineconfig-7.69.dist-info/RECORD +454 -0
  283. machineconfig-7.69.dist-info/entry_points.txt +15 -0
  284. machineconfig/cluster/templates/cli_click.py +0 -102
  285. machineconfig/cluster/templates/cli_gooey.py +0 -115
  286. machineconfig/cluster/templates/utils.py +0 -51
  287. machineconfig/jobs/linux/msc/cli_agents.sh +0 -32
  288. machineconfig/jobs/python/create_bootable_media.py +0 -16
  289. machineconfig/jobs/python/python_cargo_build_share.py +0 -59
  290. machineconfig/jobs/python/python_ve_symlink.py +0 -29
  291. machineconfig/jobs/python/tasks.py +0 -3
  292. machineconfig/jobs/python/vscode/api.py +0 -48
  293. machineconfig/jobs/python/vscode/link_ve.py +0 -63
  294. machineconfig/jobs/python/vscode/select_interpreter.py +0 -87
  295. machineconfig/jobs/python/vscode/sync_code.py +0 -58
  296. machineconfig/jobs/python_custom_installers/archive/ngrok.py +0 -63
  297. machineconfig/jobs/python_custom_installers/dev/aider.py +0 -37
  298. machineconfig/jobs/python_custom_installers/dev/alacritty.py +0 -65
  299. machineconfig/jobs/python_custom_installers/dev/brave.py +0 -71
  300. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +0 -50
  301. machineconfig/jobs/python_custom_installers/dev/code.py +0 -51
  302. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -78
  303. machineconfig/jobs/python_custom_installers/dev/espanso.py +0 -90
  304. machineconfig/jobs/python_custom_installers/dev/goes.py +0 -55
  305. machineconfig/jobs/python_custom_installers/dev/lvim.py +0 -77
  306. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +0 -68
  307. machineconfig/jobs/python_custom_installers/dev/redis.py +0 -65
  308. machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +0 -31
  309. machineconfig/jobs/python_custom_installers/dev/wezterm.py +0 -70
  310. machineconfig/jobs/python_custom_installers/docker.py +0 -74
  311. machineconfig/jobs/python_custom_installers/gh.py +0 -97
  312. machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +0 -45
  313. machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +0 -49
  314. machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +0 -85
  315. machineconfig/jobs/python_custom_installers/warp-cli.py +0 -71
  316. machineconfig/jobs/python_generic_installers/config.json +0 -603
  317. machineconfig/jobs/python_generic_installers/config.json.bak +0 -414
  318. machineconfig/jobs/python_generic_installers/dev/config.archive.json +0 -18
  319. machineconfig/jobs/python_generic_installers/dev/config.json +0 -825
  320. machineconfig/jobs/python_generic_installers/dev/config.json.bak +0 -565
  321. machineconfig/jobs/python_linux_installers/archive/config.json +0 -18
  322. machineconfig/jobs/python_linux_installers/archive/config.json.bak +0 -10
  323. machineconfig/jobs/python_linux_installers/config.json +0 -145
  324. machineconfig/jobs/python_linux_installers/config.json.bak +0 -110
  325. machineconfig/jobs/python_linux_installers/dev/config.json +0 -276
  326. machineconfig/jobs/python_linux_installers/dev/config.json.bak +0 -206
  327. machineconfig/jobs/python_windows_installers/archive/file.json +0 -11
  328. machineconfig/jobs/python_windows_installers/config.json +0 -82
  329. machineconfig/jobs/python_windows_installers/config.json.bak +0 -56
  330. machineconfig/jobs/python_windows_installers/dev/config.json +0 -4
  331. machineconfig/jobs/python_windows_installers/dev/config.json.bak +0 -3
  332. machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -14
  333. machineconfig/jobs/windows/start_terminal.ps1 +0 -6
  334. machineconfig/jobs/windows/startup_file.cmd +0 -2
  335. machineconfig/profile/create.py +0 -169
  336. machineconfig/profile/shell.py +0 -176
  337. machineconfig/scripts/cloud/init.sh +0 -119
  338. machineconfig/scripts/linux/choose_wezterm_theme +0 -3
  339. machineconfig/scripts/linux/cloud_copy +0 -2
  340. machineconfig/scripts/linux/cloud_mount +0 -2
  341. machineconfig/scripts/linux/cloud_repo_sync +0 -2
  342. machineconfig/scripts/linux/cloud_sync +0 -2
  343. machineconfig/scripts/linux/croshell +0 -3
  344. machineconfig/scripts/linux/devops +0 -2
  345. machineconfig/scripts/linux/fire +0 -2
  346. machineconfig/scripts/linux/fire_agents +0 -2
  347. machineconfig/scripts/linux/ftpx +0 -2
  348. machineconfig/scripts/linux/fzf2g +0 -21
  349. machineconfig/scripts/linux/fzffg +0 -25
  350. machineconfig/scripts/linux/gh_models +0 -2
  351. machineconfig/scripts/linux/kill_process +0 -2
  352. machineconfig/scripts/linux/mcinit +0 -2
  353. machineconfig/scripts/linux/programs +0 -21
  354. machineconfig/scripts/linux/repos +0 -2
  355. machineconfig/scripts/linux/scheduler +0 -2
  356. machineconfig/scripts/linux/share_smb +0 -1
  357. machineconfig/scripts/linux/start_slidev +0 -2
  358. machineconfig/scripts/linux/start_terminals +0 -3
  359. machineconfig/scripts/linux/warp-cli.sh +0 -122
  360. machineconfig/scripts/linux/wifi_conn +0 -2
  361. machineconfig/scripts/linux/z_ls +0 -104
  362. machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
  363. machineconfig/scripts/python/archive/im2text.py +0 -34
  364. machineconfig/scripts/python/archive/tmate_conn.py +0 -41
  365. machineconfig/scripts/python/archive/tmate_start.py +0 -44
  366. machineconfig/scripts/python/cloud_repo_sync.py +0 -192
  367. machineconfig/scripts/python/cloud_sync.py +0 -85
  368. machineconfig/scripts/python/devops_devapps_install.py +0 -202
  369. machineconfig/scripts/python/devops_update_repos.py +0 -180
  370. machineconfig/scripts/python/dotfile.py +0 -52
  371. machineconfig/scripts/python/fire_agents.py +0 -176
  372. machineconfig/scripts/python/fire_agents_help_launch.py +0 -143
  373. machineconfig/scripts/python/fire_agents_load_balancer.py +0 -50
  374. machineconfig/scripts/python/fire_jobs_args_helper.py +0 -84
  375. machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -66
  376. machineconfig/scripts/python/get_zellij_cmd.py +0 -15
  377. machineconfig/scripts/python/gh_models.py +0 -104
  378. machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -114
  379. machineconfig/scripts/python/repos.py +0 -160
  380. machineconfig/scripts/python/snapshot.py +0 -25
  381. machineconfig/scripts/python/start_terminals.py +0 -121
  382. machineconfig/scripts/python/wsl_windows_transfer.py +0 -72
  383. machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -1
  384. machineconfig/scripts/windows/cloud_copy.ps1 +0 -1
  385. machineconfig/scripts/windows/cloud_mount.ps1 +0 -1
  386. machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -1
  387. machineconfig/scripts/windows/cloud_sync.ps1 +0 -1
  388. machineconfig/scripts/windows/croshell.ps1 +0 -1
  389. machineconfig/scripts/windows/devops.ps1 +0 -1
  390. machineconfig/scripts/windows/dotfile.ps1 +0 -1
  391. machineconfig/scripts/windows/fire.ps1 +0 -1
  392. machineconfig/scripts/windows/ftpx.ps1 +0 -1
  393. machineconfig/scripts/windows/gpt.ps1 +0 -1
  394. machineconfig/scripts/windows/grep.ps1 +0 -2
  395. machineconfig/scripts/windows/kill_process.ps1 +0 -1
  396. machineconfig/scripts/windows/mcinit.ps1 +0 -1
  397. machineconfig/scripts/windows/nano.ps1 +0 -3
  398. machineconfig/scripts/windows/pomodoro.ps1 +0 -1
  399. machineconfig/scripts/windows/reload_path.ps1 +0 -3
  400. machineconfig/scripts/windows/repos.ps1 +0 -1
  401. machineconfig/scripts/windows/scheduler.ps1 +0 -1
  402. machineconfig/scripts/windows/snapshot.ps1 +0 -1
  403. machineconfig/scripts/windows/start_slidev.ps1 +0 -1
  404. machineconfig/scripts/windows/start_terminals.ps1 +0 -1
  405. machineconfig/scripts/windows/wifi_conn.ps1 +0 -2
  406. machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -46
  407. machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -76
  408. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  409. machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
  410. machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -93
  411. machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -11
  412. machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -52
  413. machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -18
  414. machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -36
  415. machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -16
  416. machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -11
  417. machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +0 -100
  418. machineconfig/utils/ai/generate_file_checklist.py +0 -68
  419. machineconfig/utils/installer.py +0 -255
  420. machineconfig-3.7.dist-info/METADATA +0 -165
  421. machineconfig-3.7.dist-info/RECORD +0 -432
  422. machineconfig-3.7.dist-info/entry_points.txt +0 -18
  423. machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
  424. machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
  425. machineconfig/cluster/{templates → remote}/run_remote.py +0 -0
  426. machineconfig/jobs/{python → installer}/__init__.py +0 -0
  427. machineconfig/jobs/{python_custom_installers → installer/custom_dev}/__init__.py +0 -0
  428. machineconfig/{setup_windows/wt_and_pwsh → jobs/installer/powershell_scripts}/install_fonts.ps1 +0 -0
  429. machineconfig/scripts/linux/{share_nfs → other/share_nfs} +0 -0
  430. machineconfig/scripts/linux/{start_docker → other/start_docker} +0 -0
  431. machineconfig/scripts/linux/{switch_ip → other/switch_ip} +0 -0
  432. machineconfig/{jobs/python_generic_installers → scripts/python/helpers_agents}/__init__.py +0 -0
  433. machineconfig/{jobs/python_linux_installers → scripts/python/helpers_agents/agentic_frameworks}/__init__.py +0 -0
  434. machineconfig/scripts/python/{fire_agents_help_search.py → helpers_agents/fire_agents_help_search.py} +0 -0
  435. machineconfig/{jobs/python_linux_installers/dev → scripts/python/helpers_cloud}/__init__.py +0 -0
  436. machineconfig/scripts/python/{helpers → helpers_cloud}/cloud_helpers.py +1 -1
  437. /machineconfig/scripts/python/{helpers → helpers_cloud}/helpers5.py +0 -0
  438. /machineconfig/{jobs/python_windows_installers → scripts/python/helpers_croshell}/__init__.py +0 -0
  439. /machineconfig/scripts/python/{pomodoro.py → helpers_croshell/pomodoro.py} +0 -0
  440. /machineconfig/scripts/python/{viewer.py → helpers_croshell/viewer.py} +0 -0
  441. /machineconfig/scripts/python/{viewer_template.py → helpers_croshell/viewer_template.py} +0 -0
  442. /machineconfig/{jobs/python_windows_installers/archive → scripts/python/helpers_devops}/__init__.py +0 -0
  443. /machineconfig/{jobs/python_windows_installers/dev → scripts/python/helpers_devops/themes}/__init__.py +0 -0
  444. /machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
  445. /machineconfig/scripts/python/{helpers → helpers_fire_command}/__init__.py +0 -0
  446. /machineconfig/scripts/python/{fire_jobs_streamlit_helper.py → helpers_fire_command/fire_jobs_streamlit_helper.py} +0 -0
  447. /machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/skrg +0 -0
  448. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfb.ps1 +0 -0
  449. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfg.ps1 +0 -0
  450. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfrga.bat +0 -0
  451. /machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_sessions/__init__.py} +0 -0
  452. /machineconfig/scripts/{windows/share_nfs.ps1 → python/nw/__init__.py} +0 -0
  453. /machineconfig/scripts/{linux → python/nw}/mount_drive +0 -0
  454. /machineconfig/scripts/python/{mount_nw_drive.py → nw/mount_nw_drive.py} +0 -0
  455. /machineconfig/scripts/{linux → python/nw}/mount_smb +0 -0
  456. /machineconfig/scripts/windows/{mount_nw.ps1 → mounts/mount_nw.ps1} +0 -0
  457. /machineconfig/scripts/windows/{mount_smb.ps1 → mounts/mount_smb.ps1} +0 -0
  458. /machineconfig/scripts/windows/{share_cloud.cmd → mounts/share_cloud.cmd} +0 -0
  459. /machineconfig/scripts/windows/{unlock_bitlocker.ps1 → mounts/unlock_bitlocker.ps1} +0 -0
  460. /machineconfig/setup_linux/{web_shortcuts → others}/android.sh +0 -0
  461. /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
  462. /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
  463. /machineconfig/{settings/yazi/keymap.toml → utils/files/ouch/__init__.py} +0 -0
  464. {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/WHEEL +0 -0
  465. {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,6 @@
1
+
2
+ please look if it is possible to easily relpace PathExtended with normal Path from pathlib
3
+ if its one or two lines of code, then go ahead and make it standard and stop using the extended library
4
+ you focus ont he methods used,
5
+
6
+ only look at the files below
@@ -0,0 +1,14 @@
1
+ # Set error action preference to stop on error, like set -e
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ $JOB_NAME = "outpatient_mapping"
5
+ $REPO_ROOT = "$HOME/code/work/winter_planning/"
6
+ $CONTEXT_PATH = "$REPO_ROOT/data/outpatient_mapping/op_services.csv"
7
+ $PROMPT_PATH = "$REPO_ROOT/data/outpatient_mapping/prompt"
8
+ $AGENTS_DIR = "$REPO_ROOT/.ai/agents/$JOB_NAME"
9
+
10
+ agents create --agents crush --host docker --model x-ai/grok-4-fast:free --provider openrouter --context-path $CONTEXT_PATH --prompt-path $PROMPT_PATH --job-name $JOB_NAME --agents-dir $AGENTS_DIR
11
+ sessions balance-load "$AGENTS_DIR/layout.json" --max-thresh 6 --breaking-method moreLayouts --thresh-type number --output-path "$AGENTS_DIR/layout_balanced.json"
12
+ sessions run "$AGENTS_DIR/layout_balanced.json" --kill-upon-completion
13
+
14
+ # agents collect $AGENTS_DIR "$REPO_ROOT/.ai/agents/$JOB_NAME/collected.txt"
@@ -0,0 +1,24 @@
1
+
2
+ #!/bin/bash
3
+ # set -e # Exit immediately if a command exits with a non-zero status.
4
+
5
+ JOB_NAME="outpatient_mapping"
6
+ REPO_ROOT="$HOME/code/machineconfig"
7
+ CONTEXT_PATH="$REPO_ROOT/.ai/todo/files.md"
8
+ # agents make-todo --strategy keywords from machineconfig.utils.path_extended import PathExtended
9
+ PROMPT_PATH="$REPO_ROOT/src/machineconfig/scripts/python/helpers_agents/templates/prompt.txt"
10
+ AGENTS_DIR="$REPO_ROOT/.ai/agents/$JOB_NAME"
11
+
12
+ agents create --agents crush \
13
+ --host docker \
14
+ --model x-ai/grok-4-fast:free \
15
+ --provider openrouter \
16
+ --context-path $CONTEXT_PATH \
17
+ --prompt-path $PROMPT_PATH \
18
+ --job-name $JOB_NAME \
19
+ --agents-dir $AGENTS_DIR
20
+ sessions balance-load "$AGENTS_DIR/layout.json" --max-thresh 6 --breaking-method moreLayouts --thresh-type number --output-path "$AGENTS_DIR/layout_balanced.json"
21
+ sessions run "$AGENTS_DIR/layout_balanced.json" --kill-upon-completion
22
+
23
+
24
+ # agents collect $AGENTS_DIR "$REPO_ROOT/.ai/agents/$JOB_NAME/collected.txt"
@@ -2,25 +2,24 @@
2
2
  CC
3
3
  """
4
4
 
5
- from machineconfig.utils.path_extended import PathExtended as PathExtended
6
- from tenacity import retry, stop_after_attempt, wait_chain, wait_fixed
7
- import getpass
8
- import argparse
9
- import os
10
- from typing import Optional
5
+ from typing import Optional, Annotated
6
+ import typer
11
7
 
12
- from machineconfig.scripts.python.helpers.helpers2 import parse_cloud_source_target
13
- from machineconfig.scripts.python.helpers.cloud_helpers import ArgsDefaults, Args
14
- from rich.console import Console
15
- from rich.panel import Panel
16
- from rich.progress import Progress
17
- from machineconfig.utils.accessories import pprint
8
+ from tenacity import retry, stop_after_attempt, wait_chain, wait_fixed
18
9
 
19
- console = Console()
20
10
 
21
11
 
22
12
  @retry(stop=stop_after_attempt(3), wait=wait_chain(wait_fixed(1), wait_fixed(4), wait_fixed(9)))
23
13
  def get_securely_shared_file(url: Optional[str] = None, folder: Optional[str] = None) -> None:
14
+ from rich.console import Console
15
+ from rich.panel import Panel
16
+ from rich.progress import Progress
17
+ import getpass
18
+ import os
19
+ from machineconfig.utils.path_extended import PathExtended
20
+
21
+ console = Console()
22
+
24
23
  console.print(Panel("🚀 Secure File Downloader", title="[bold blue]Downloader[/bold blue]", border_style="blue"))
25
24
 
26
25
  folder_obj = PathExtended.cwd() if folder is None else PathExtended(folder)
@@ -61,33 +60,43 @@ def get_securely_shared_file(url: Optional[str] = None, folder: Optional[str] =
61
60
  tmp_folder.delete()
62
61
 
63
62
 
64
- def arg_parser() -> None:
65
- console.print(Panel("☁️ Cloud Copy Utility", title="[bold blue]Cloud Copy[/bold blue]", border_style="blue", width=152))
66
-
67
- parser = argparse.ArgumentParser(description="🚀 Cloud CLI. It wraps rclone with sane defaults for optimum type time.")
68
-
69
- # positional argument
70
- parser.add_argument("source", help="📂 file/folder path to be taken from here.")
71
- parser.add_argument("target", help="🎯 file/folder path to be be sent to here.")
72
63
 
73
- parser.add_argument("--overwrite", "-w", help="✍️ Overwrite existing file.", action="store_true", default=ArgsDefaults.overwrite)
74
- parser.add_argument("--share", "-s", help="🔗 Share file / directory", action="store_true", default=ArgsDefaults.share)
75
- parser.add_argument("--rel2home", "-r", help="🏠 Relative to `myhome` folder", action="store_true", default=ArgsDefaults.rel2home)
76
- parser.add_argument("--root", "-R", help="🌳 Remote root. None is the default, unless rel2home is raied, making the default `myhome`.", default=ArgsDefaults.root)
77
-
78
- parser.add_argument("--key", "-k", help="🔑 Key for encryption", type=str, default=ArgsDefaults.key)
79
- parser.add_argument("--pwd", "-p", help="🔒 Password for encryption", type=str, default=ArgsDefaults.pwd)
80
- parser.add_argument("--encrypt", "-e", help="🔐 Encrypt before sending.", action="store_true", default=ArgsDefaults.encrypt)
81
- parser.add_argument("--zip", "-z", help="📦 unzip after receiving.", action="store_true", default=ArgsDefaults.zip_)
82
- parser.add_argument("--os_specific", "-o", help="💻 choose path specific for this OS.", action="store_true", default=ArgsDefaults.os_specific)
83
-
84
- parser.add_argument("--config", "-c", help="⚙️ path to cloud.json file.", default=None)
85
-
86
- args = parser.parse_args()
87
- args_dict = vars(args)
88
- source: str = args_dict.pop("source")
89
- target: str = args_dict.pop("target")
90
- args_obj = Args(**args_dict)
64
+ def main(
65
+ source: Annotated[str, typer.Argument(help="📂 file/folder path to be taken from here.")],
66
+ target: Annotated[str, typer.Argument(help="🎯 file/folder path to be be sent to here.")],
67
+ overwrite: Annotated[bool, typer.Option("--overwrite", "-o", help="✍️ Overwrite existing file.")] = False,
68
+ share: Annotated[bool, typer.Option("--share", "-s", help="🔗 Share file / directory")] = False,
69
+ rel2home: Annotated[bool, typer.Option("--relative2home", "-r", help="🏠 Relative to `myhome` folder")] = False,
70
+ root: Annotated[Optional[str], typer.Option("--root", "-R", help="🌳 Remote root. None is the default, unless rel2home is raied, making the default `myhome`.")] = None,
71
+ key: Annotated[Optional[str], typer.Option("--key", "-k", help="🔑 Key for encryption")] = None,
72
+ pwd: Annotated[Optional[str], typer.Option("--password", "-p", help="🔒 Password for encryption")] = None,
73
+ encrypt: Annotated[bool, typer.Option("--encrypt", "-e", help="🔐 Encrypt before sending.")] = False,
74
+ zip_: Annotated[bool, typer.Option("--zip", "-z", help="📦 unzip after receiving.")] = False,
75
+ os_specific: Annotated[bool, typer.Option("--os-specific", "-O", help="💻 choose path specific for this OS.")] = False,
76
+ config: Annotated[Optional[str], typer.Option("--config", "-c", help="⚙️ path to cloud.json file.")] = None,
77
+ ) -> None:
78
+ """📤 Upload or 📥 Download files/folders to/from cloud storage services like Google Drive, Dropbox, OneDrive, etc."""
79
+ from rich.console import Console
80
+ from rich.panel import Panel
81
+ from machineconfig.utils.path_extended import PathExtended
82
+ from machineconfig.scripts.python.helpers_cloud.helpers2 import parse_cloud_source_target
83
+ from machineconfig.scripts.python.helpers_cloud.cloud_helpers import Args
84
+ from machineconfig.utils.accessories import pprint
85
+
86
+ console = Console()
87
+ console.print(Panel("☁️ Cloud Copy Utility", title="[bold blue]Cloud Copy[/bold blue]", border_style="blue", width=152))
88
+ args_obj = Args(
89
+ overwrite=overwrite,
90
+ share=share,
91
+ rel2home=rel2home,
92
+ root=root,
93
+ key=key,
94
+ pwd=pwd,
95
+ encrypt=encrypt,
96
+ zip=zip_,
97
+ os_specific=os_specific,
98
+ config=config,
99
+ )
91
100
 
92
101
  if args_obj.config == "ss" and (source.startswith("http") or source.startswith("bit.ly")):
93
102
  console.print(Panel("🔒 Detected secure share link", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
@@ -153,5 +162,9 @@ def arg_parser() -> None:
153
162
  raise ValueError(f"Cloud `{cloud}` not found in source or target.")
154
163
 
155
164
 
165
+ def arg_parser() -> None:
166
+ typer.run(main)
167
+
168
+
156
169
  if __name__ == "__main__":
157
170
  arg_parser()
@@ -2,11 +2,11 @@
2
2
 
3
3
  from machineconfig.utils.options import choose_from_options
4
4
  from machineconfig.utils.io import read_ini
5
- from machineconfig.utils.path_extended import PathExtended as PathExtended
5
+ from machineconfig.utils.path_extended import PathExtended
6
6
 
7
7
  import platform
8
- import argparse
9
- from typing import Optional
8
+ from typing import Optional, Annotated
9
+ import typer
10
10
  from rich.console import Console
11
11
  from rich.panel import Panel
12
12
 
@@ -52,7 +52,12 @@ mprocs "echo 'see {DEFAULT_MOUNT}/{cloud} for the mounted cloud'; rclone about {
52
52
  return txt
53
53
 
54
54
 
55
- def mount(cloud: Optional[str], network: Optional[str], destination: Optional[str]) -> None:
55
+ def mount(
56
+ cloud: Annotated[Optional[str], typer.Option(help="cloud to mount")] = None,
57
+ destination: Annotated[Optional[str], typer.Option(help="destination to mount")] = None,
58
+ network: Annotated[Optional[str], typer.Option(help="mount network drive")] = None,
59
+ ) -> None:
60
+
56
61
  # draw header box dynamically
57
62
  title = "☁️ Cloud Mount Utility"
58
63
  console.print(Panel(title, title_align="left", border_style="blue"))
@@ -153,18 +158,8 @@ zellij action move-focus up
153
158
  console.print(Panel(f"{title1}\n{title2}", title="Success", border_style="green"))
154
159
 
155
160
 
156
- def main():
157
- # draw main title box dynamically
158
- main_title = "☁️ RCLONE CLOUD MOUNT"
159
- console.print(Panel(main_title, title_align="left", border_style="blue"))
160
-
161
- parser = argparse.ArgumentParser(description="mount cloud")
162
- parser.add_argument("cloud", nargs="?", type=str, default=None, help="cloud to mount")
163
- parser.add_argument("destination", nargs="?", type=str, default=None, help="destination to mount")
164
- parser.add_argument("--network", type=str, default=None, help="mount network drive")
165
- args = parser.parse_args()
166
- mount(cloud=args.cloud, network=args.network, destination=args.destination)
167
-
168
161
 
169
- if __name__ == "__main__":
170
- main()
162
+ def get_app():
163
+ app = typer.Typer(name="cloud-mount", help="Cloud mount utility")
164
+ app.command(name="mount", no_args_is_help=True)(mount)
165
+ return app
@@ -0,0 +1,81 @@
1
+ """CS
2
+ TODO: use typer or typed-argument-parser to parse args
3
+ """
4
+
5
+
6
+ from typing import Annotated, Optional
7
+ import typer
8
+
9
+
10
+ def main(
11
+ source: Annotated[str, typer.Argument(help="source")],
12
+ target: Annotated[str, typer.Argument(help="target")],
13
+ transfers: Annotated[int, typer.Option("--transfers", "-t", help="Number of threads in syncing.")] = 10,
14
+ root: Annotated[str, typer.Option("--root", "-R", help="Remote root.")] = "myhome",
15
+ key: Annotated[Optional[str], typer.Option("--key", "-k", help="Key for encryption")] = None,
16
+ pwd: Annotated[Optional[str], typer.Option("--pwd", "-P", help="Password for encryption")] = None,
17
+ encrypt: Annotated[bool, typer.Option("--encrypt", "-e", help="Decrypt after receiving.")] = False,
18
+ zip_: Annotated[bool, typer.Option("--zip", "-z", help="unzip after receiving.")] = False,
19
+ bisync: Annotated[bool, typer.Option("--bisync", "-b", help="Bidirectional sync.")] = False,
20
+ delete: Annotated[bool, typer.Option("--delete", "-D", help="Delete files in remote that are not in local.")] = False,
21
+ verbose: Annotated[bool, typer.Option("--verbose", "-v", help="Verbosity of mprocs to show details of syncing.")] = False,
22
+ ) -> None:
23
+
24
+ from machineconfig.scripts.python.helpers_cloud.helpers2 import parse_cloud_source_target
25
+ from machineconfig.scripts.python.helpers_cloud.cloud_helpers import Args
26
+ from machineconfig.scripts.python.helpers_cloud.cloud_mount import get_mprocs_mount_txt
27
+ from rich.console import Console
28
+ from rich.panel import Panel
29
+ console = Console()
30
+
31
+ title = "☁️ Cloud Sync Utility"
32
+ console.print(Panel(title, title_align="left", border_style="blue"))
33
+
34
+ args_obj = Args(
35
+ root=root,
36
+ key=key,
37
+ pwd=pwd,
38
+ encrypt=encrypt,
39
+ zip=zip_,
40
+ rel2home=True,
41
+ os_specific=False,
42
+ )
43
+
44
+ cloud, source, target = parse_cloud_source_target(args=args_obj, source=source, target=target)
45
+ # map short flags to long flags (-u -> --upload), for easier use in the script
46
+ if bisync:
47
+ title = "🔄 BI-DIRECTIONAL SYNC"
48
+ source_line = f"Source: {source}"
49
+ target_line = f"Target: {target}"
50
+ console.print(Panel(f"{source_line}\n{target_line}", title=title, border_style="blue"))
51
+ rclone_cmd = f"""rclone bisync '{source}' '{target}' --resync"""
52
+ else:
53
+ title = "📤 ONE-WAY SYNC"
54
+ source_line = f"Source: {source}"
55
+ arrow_line = "↓"
56
+ target_line = f"Target: {target}"
57
+ console.print(Panel(f"{source_line}\n{arrow_line}\n{target_line}", title=title, border_style="blue"))
58
+ if delete:
59
+ rclone_cmd = f'rclone sync -P "{source}" "{target}" --delete-during --transfers={transfers}'
60
+ else:
61
+ rclone_cmd = f'rclone sync -P "{source}" "{target}" --transfers={transfers}'
62
+
63
+ rclone_cmd += f" --progress --transfers={transfers} --verbose"
64
+ # rclone_cmd += f" --vfs-cache-mode full"
65
+ if delete:
66
+ rclone_cmd += " --delete-during"
67
+
68
+ if verbose:
69
+ txt = get_mprocs_mount_txt(cloud=cloud, rclone_cmd=rclone_cmd, cloud_brand="Unknown")
70
+ else:
71
+ txt = f"""{rclone_cmd}"""
72
+
73
+ title = "🚀 EXECUTING COMMAND"
74
+ cmd_line = f"{rclone_cmd[:65]}..."
75
+ console.print(Panel(f"{title}\n{cmd_line}", title="[bold blue]Command[/bold blue]", expand=False))
76
+
77
+ # import subprocess
78
+ # subprocess.run(txt, shell=True, check=True)
79
+ from machineconfig.utils.code import run_shell_script
80
+ run_shell_script(txt)
81
+
@@ -1,4 +1,4 @@
1
- from machineconfig.scripts.python.helpers.cloud_helpers import Args, ArgsDefaults, absolute, find_cloud_config, get_secure_share_cloud_config
1
+ from machineconfig.scripts.python.helpers_cloud.cloud_helpers import Args, ArgsDefaults, absolute, find_cloud_config, get_secure_share_cloud_config
2
2
  from machineconfig.utils.io import read_ini
3
3
  from machineconfig.utils.source_of_truth import DEFAULTS_PATH
4
4
  from machineconfig.utils.accessories import pprint
@@ -104,7 +104,7 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
104
104
  if len(source_parts) > 1 and source_parts[1] == ES: # the source path is to be inferred from target.
105
105
  assert ES not in target, f"You can't use expand symbol `{ES}` in both source and target. Cyclical inference dependency arised."
106
106
  target_obj = absolute(target)
107
- from machineconfig.utils.path_extended import PathExtended as PathExtended
107
+ from machineconfig.utils.path_extended import PathExtended
108
108
 
109
109
  remote_path = PathExtended(target_obj).get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
110
110
  source = f"{cloud}:{remote_path.as_posix()}"
@@ -124,7 +124,7 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
124
124
  if len(target_parts) > 1 and target_parts[1] == ES: # the target path is to be inferred from source.
125
125
  assert ES not in source, "You can't use $ in both source and target. Cyclical inference dependency arised."
126
126
  source_obj = absolute(source)
127
- from machineconfig.utils.path_extended import PathExtended as PathExtended
127
+ from machineconfig.utils.path_extended import PathExtended
128
128
 
129
129
  remote_path = PathExtended(source_obj).get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
130
130
  target = f"{cloud}:{remote_path.as_posix()}"
@@ -0,0 +1,39 @@
1
+
2
+
3
+ def get_read_python_file_pycode(path: str, title: str):
4
+ from pathlib import Path
5
+ print("Reading code from path:", path)
6
+ pycode = Path(path).read_text(encoding="utf-8")
7
+ pycode = pycode.split("except Exception: print(pycode)")[2]
8
+ try:
9
+ # from rich.text import Text
10
+ from rich.panel import Panel
11
+ from rich.console import Console
12
+ from rich.syntax import Syntax
13
+ console = Console()
14
+ if pycode.strip() != "":
15
+ console.print(Panel(Syntax(pycode, lexer="python"), title=title), style="bold red")
16
+ except Exception: print(pycode)
17
+
18
+
19
+ def get_read_data_pycode(path: str):
20
+ from rich.panel import Panel
21
+ from rich.text import Text
22
+ from rich.console import Console
23
+ from pathlib import Path
24
+ console = Console()
25
+ p = Path(path).absolute()
26
+ try:
27
+ from machineconfig.utils.files.read import Read
28
+ from machineconfig.utils.accessories import pprint
29
+ dat = Read.read(p)
30
+ if isinstance(dat, dict):
31
+ panel_title = f"📄 File Data: {p.name}"
32
+ console.print(Panel(Text(str(dat), justify="left"), title=panel_title, expand=False))
33
+ pprint(dat, p.name)
34
+ else:
35
+ panel_title = f"📄 Successfully read the file: {p.name}"
36
+ console.print(Panel(Text(str(dat), justify="left"), title=panel_title, expand=False))
37
+ except Exception as e:
38
+ error_message = f'''❌ ERROR READING FILE\nFile: {p.name}\nError: {e}'''
39
+ console.print(Panel(Text(error_message, justify="left"), title="Error", expand=False, border_style="red"))
@@ -4,7 +4,6 @@
4
4
  # from machineconfig.utils.scheduling import PathExtended, Report, DEFAULT_CONFIG, read_task_from_dir, main
5
5
 
6
6
  # def main_parse():
7
- # import argparse
8
7
  # print("\n" + "=" * 50)
9
8
  # print("📅 Welcome to the Scheduler CLI")
10
9
  # print("=" * 50 + "\n")
@@ -2,22 +2,34 @@
2
2
  slidev
3
3
  """
4
4
 
5
- from machineconfig.utils.source_of_truth import CONFIG_PATH
5
+ from machineconfig.utils.source_of_truth import CONFIG_ROOT
6
6
  from machineconfig.utils.code import print_code
7
- from machineconfig.utils.path_extended import PathExtended as PathExtended
8
- from machineconfig.utils.terminal import Terminal
7
+ from machineconfig.utils.path_extended import PathExtended
8
+ from machineconfig.utils.terminal import Response
9
+ from typing import Annotated, Optional
10
+ import typer
9
11
  import subprocess
10
12
  import platform
11
13
 
12
14
  PORT_DEFAULT = 3030
13
15
 
14
- SLIDEV_REPO = PathExtended(CONFIG_PATH).joinpath(".cache/slidev")
16
+ SLIDEV_REPO = PathExtended(CONFIG_ROOT).joinpath(".cache/slidev")
15
17
  if not SLIDEV_REPO.joinpath("components").exists():
16
18
  print("📦 Initializing Slidev repository...")
17
- Terminal(stderr=subprocess.PIPE, stdin=subprocess.PIPE, stdout=subprocess.PIPE).run(f"cd {SLIDEV_REPO.parent};npm init slidev@latest")
19
+ subprocess.run(f"cd {SLIDEV_REPO.parent};npm init slidev@latest", check=False, shell=True, text=True)
18
20
  print("✅ Slidev repository initialized successfully!\n")
19
21
 
20
22
 
23
+ def _execute_with_shell(command: str) -> Response:
24
+ if platform.system() == "Windows":
25
+ completed = subprocess.run(["powershell", "-Command", command], capture_output=True, check=False, text=True)
26
+ else:
27
+ completed = subprocess.run(command, capture_output=True, check=False, text=True, shell=True)
28
+ response = Response.from_completed_process(completed)
29
+ response.print()
30
+ return response
31
+
32
+
21
33
  def jupyter_to_markdown(file: PathExtended):
22
34
  op_dir = file.parent.joinpath("presentation")
23
35
  print("📝 Converting Jupyter notebook to markdown...")
@@ -33,9 +45,9 @@ def jupyter_to_markdown(file: PathExtended):
33
45
  # for key, value in resources['outputs'].items():
34
46
 
35
47
  cmd = f"jupyter nbconvert --to markdown --no-prompt --no-input --output-dir {op_dir} --output slides_raw.md {file}"
36
- Terminal().run(cmd, shell="powershell").print()
48
+ _execute_with_shell(cmd)
37
49
  cmd = f"jupyter nbconvert --to html --no-prompt --no-input --output-dir {op_dir} {file}"
38
- Terminal().run(cmd, shell="powershell").print()
50
+ _execute_with_shell(cmd)
39
51
 
40
52
  op_file = op_dir.joinpath("slides_raw.md")
41
53
  slide_separator = "\n\n---\n\n"
@@ -47,28 +59,24 @@ def jupyter_to_markdown(file: PathExtended):
47
59
  return op_dir
48
60
 
49
61
 
50
- def main() -> None:
51
- import argparse
52
-
62
+ def main(
63
+ directory: Annotated[Optional[str], typer.Option("-d", "--directory", help="📁 Directory of the report.")] = None,
64
+ jupyter_file: Annotated[Optional[str], typer.Option("-j", "--jupyter-file", help="📓 Jupyter notebook file to convert to slides. If not provided, slides.md is used.")] = None,
65
+ ) -> None:
53
66
  print("\n" + "=" * 50)
54
67
  print("🎥 Welcome to the Slidev Presentation Tool")
55
68
  print("=" * 50 + "\n")
56
69
 
57
- parser = argparse.ArgumentParser()
58
- parser.add_argument("-d", "--directory", default=None, help="📁 Directory of the report.")
59
- parser.add_argument("-j", "--jupyter-file", default=None, help="📓 Jupyter notebook file to convert to slides. If not provided, slides.md is used.")
60
- args = parser.parse_args()
61
-
62
70
  port = PORT_DEFAULT
63
71
 
64
- if args.jupyter_file is not None:
72
+ if jupyter_file is not None:
65
73
  print("📓 Jupyter file provided. Converting to markdown...")
66
- report_dir = jupyter_to_markdown(PathExtended(args.jupyter_file))
74
+ report_dir = jupyter_to_markdown(PathExtended(jupyter_file))
67
75
  else:
68
- if args.directory is None:
76
+ if directory is None:
69
77
  report_dir = PathExtended.cwd()
70
78
  else:
71
- report_dir = PathExtended(args.directory)
79
+ report_dir = PathExtended(directory)
72
80
 
73
81
  assert report_dir.exists(), f"❌ Directory {report_dir} does not exist."
74
82
  assert report_dir.is_dir(), f"❌ {report_dir} is not a directory."
@@ -108,5 +116,9 @@ def main() -> None:
108
116
  print_code(code=program, lexer="bash", desc="Run the following command to start the presentation")
109
117
 
110
118
 
119
+ def arg_parser() -> None:
120
+ typer.run(main)
121
+
122
+
111
123
  if __name__ == "__main__":
112
- main()
124
+ arg_parser()
@@ -0,0 +1,95 @@
1
+
2
+
3
+ from typing import Literal, Annotated
4
+ from pathlib import Path
5
+ import typer
6
+ import machineconfig.scripts.python.helpers_devops.cli_config_dotfile as dotfile_module
7
+ import machineconfig.profile.create_links_export as create_links_export
8
+
9
+
10
+ def configure_shell_profile(which: Annotated[Literal["default", "d", "nushell", "n"], typer.Option(..., "--which", "-w", help="Which shell profile to create/configure")]="default"):
11
+ """🔗 Configure your shell profile."""
12
+ from machineconfig.profile.create_shell_profile import create_default_shell_profile, create_nu_shell_profile
13
+ match which:
14
+ case "nushell" | "n":
15
+ create_nu_shell_profile()
16
+ return
17
+ case "default" | "d":
18
+ create_default_shell_profile()
19
+ return
20
+ typer.echo(f"[red]Error:[/] Unknown shell profile type: {which}")
21
+
22
+
23
+
24
+ def pwsh_theme():
25
+ """🔗 Select powershell prompt theme."""
26
+ import machineconfig.scripts.python.helpers_devops.themes as themes
27
+ file = Path(themes.__file__).parent / "choose_pwsh_theme.ps1"
28
+ import subprocess
29
+ subprocess.run(["pwsh", "-File", str(file)])
30
+
31
+
32
+ def starship_theme():
33
+ """🔗 Select starship prompt theme."""
34
+ import subprocess
35
+ from machineconfig.utils.code import run_shell_script
36
+
37
+ presets: list[str] = ["catppuccin-powerline", "pastel-powerline", "tokyo-night", "gruvbox-rainbow", "jetpack"]
38
+ config_path: Path = Path.home() / ".config" / "starship.toml"
39
+
40
+ typer.echo("\n🚀 Starship Theme Selector\n")
41
+ for idx, preset in enumerate(presets, start=1):
42
+ typer.echo(f"{idx}. {preset}")
43
+
44
+ choice: str = typer.prompt("Select a preset")
45
+
46
+ try:
47
+ choice_idx: int = int(choice)
48
+ if 1 <= choice_idx <= len(presets):
49
+ selected_preset: str = presets[choice_idx - 1]
50
+ typer.echo(f"\n✨ Applying {selected_preset}...")
51
+ run_shell_script(f"""starship preset {selected_preset} -o {config_path}""")
52
+ typer.echo("\n📋 Preview:")
53
+ subprocess.run(["starship", "module", "all"], check=False)
54
+ typer.echo(f"\n✅ {selected_preset} applied!")
55
+ else:
56
+ typer.echo("❌ Invalid selection")
57
+ except ValueError:
58
+ typer.echo("❌ Please enter a valid number")
59
+
60
+
61
+ def copy_assets(which: Annotated[Literal["scripts", "s", "settings", "t", "both", "b"], typer.Argument(..., help="Which assets to copy")]):
62
+ """🔗 Copy asset files from library to machine."""
63
+ import machineconfig.profile.create_helper as create_helper
64
+ match which:
65
+ case "both" | "b":
66
+ create_helper.copy_assets_to_machine(which="scripts")
67
+ create_helper.copy_assets_to_machine(which="settings")
68
+ return
69
+ case "scripts" | "s":
70
+ create_helper.copy_assets_to_machine(which="scripts")
71
+ return
72
+ case "settings" | "t":
73
+ create_helper.copy_assets_to_machine(which="settings")
74
+ return
75
+ typer.echo(f"[red]Error:[/] Unknown asset type: {which}")
76
+
77
+
78
+ def get_app():
79
+ config_apps = typer.Typer(help="⚙️ [c] configuration subcommands", no_args_is_help=True, add_help_option=False, add_completion=False)
80
+ config_apps.command("private", no_args_is_help=True, help="🔗 [v] Manage private configuration files.")(create_links_export.main_private_from_parser)
81
+ config_apps.command("v", no_args_is_help=True, hidden=True)(create_links_export.main_private_from_parser)
82
+ config_apps.command("public", no_args_is_help=True, help="🔗 [b] Manage public configuration files.")(create_links_export.main_public_from_parser)
83
+ config_apps.command("b", no_args_is_help=True, help="Manage public configuration files.", hidden=True)(create_links_export.main_public_from_parser)
84
+ config_apps.command("dotfile", no_args_is_help=True, help="🔗 [d] Manage dotfiles.")(dotfile_module.main)
85
+ config_apps.command("d", no_args_is_help=True, hidden=True)(dotfile_module.main)
86
+ config_apps.command("shell", no_args_is_help=False, help="🔗 [s] Configure your shell profile.")(configure_shell_profile)
87
+ config_apps.command("s", no_args_is_help=False, help="Configure your shell profile.", hidden=True)(configure_shell_profile)
88
+ config_apps.command("starship-theme", no_args_is_help=False, help="🔗 [t] Select starship prompt theme.")(starship_theme)
89
+ config_apps.command("t", no_args_is_help=False, help="Select starship prompt theme.", hidden=True)(starship_theme)
90
+ config_apps.command("pwsh-theme", no_args_is_help=False, help="🔗 [T] Select powershell prompt theme.")(pwsh_theme)
91
+ config_apps.command("T", no_args_is_help=False, help="Select powershell prompt theme.", hidden=True)(pwsh_theme)
92
+
93
+ config_apps.command("copy-assets", no_args_is_help=True, help="🔗 [c] Copy asset files from library to machine.", hidden=False)(copy_assets)
94
+ config_apps.command("c", no_args_is_help=True, help="Copy asset files from library to machine.", hidden=True)(copy_assets)
95
+ return config_apps