machineconfig 7.98__py3-none-any.whl → 8.61__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 (353) hide show
  1. machineconfig/cluster/remote/run_cluster.py +1 -1
  2. machineconfig/cluster/remote/run_remote.py +1 -1
  3. machineconfig/cluster/sessions_managers/utils/maker.py +10 -8
  4. machineconfig/cluster/sessions_managers/wt_local.py +1 -1
  5. machineconfig/cluster/sessions_managers/wt_local_manager.py +1 -1
  6. machineconfig/cluster/sessions_managers/zellij_local.py +1 -1
  7. machineconfig/cluster/sessions_managers/zellij_local_manager.py +1 -1
  8. machineconfig/jobs/installer/checks/check_installations.py +133 -0
  9. machineconfig/jobs/installer/checks/install_utils.py +132 -0
  10. machineconfig/jobs/installer/checks/report_utils.py +39 -0
  11. machineconfig/jobs/installer/checks/vt_utils.py +89 -0
  12. machineconfig/jobs/installer/installer_data.json +271 -152
  13. machineconfig/jobs/installer/linux_scripts/docker.sh +6 -9
  14. machineconfig/jobs/installer/package_groups.py +11 -9
  15. machineconfig/jobs/installer/{custom → python_scripts}/boxes.py +1 -2
  16. machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +1 -1
  17. machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +10 -8
  18. machineconfig/jobs/installer/{custom → python_scripts}/hx.py +30 -13
  19. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +1 -1
  20. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +6 -5
  21. machineconfig/jobs/installer/{custom_dev → python_scripts}/sysabc.py +28 -43
  22. machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +1 -1
  23. machineconfig/jobs/installer/{custom → python_scripts}/yazi.py +39 -19
  24. machineconfig/jobs/scripts/powershell_scripts/cmatrix.ps1 +52 -0
  25. machineconfig/jobs/scripts_dynamic/a.py +428 -0
  26. machineconfig/logger.py +1 -1
  27. machineconfig/profile/create_helper.py +21 -10
  28. machineconfig/profile/create_links.py +77 -20
  29. machineconfig/profile/create_links_export.py +63 -58
  30. machineconfig/profile/create_shell_profile.py +14 -0
  31. machineconfig/profile/mapper_data.toml +45 -0
  32. machineconfig/profile/mapper_dotfiles.toml +249 -0
  33. machineconfig/scripts/python/agents.py +76 -171
  34. machineconfig/scripts/python/ai/initai.py +3 -1
  35. machineconfig/scripts/python/ai/scripts/__init__.py +1 -0
  36. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +2 -0
  37. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +8 -6
  38. machineconfig/scripts/python/ai/solutions/claude/claude.py +1 -1
  39. machineconfig/scripts/python/ai/solutions/cline/cline.py +1 -1
  40. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +1 -1
  41. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +29 -0
  42. machineconfig/scripts/python/ai/solutions/crush/crush.py +1 -1
  43. machineconfig/scripts/python/ai/solutions/cursor/cursors.py +1 -1
  44. machineconfig/scripts/python/ai/solutions/gemini/gemini.py +1 -1
  45. machineconfig/scripts/python/ai/solutions/gemini/settings.json +3 -0
  46. machineconfig/scripts/python/ai/{solutions → utils}/generic.py +2 -15
  47. machineconfig/scripts/python/ai/utils/vscode_tasks.py +6 -3
  48. machineconfig/scripts/python/cloud.py +58 -11
  49. machineconfig/scripts/python/croshell.py +4 -155
  50. machineconfig/scripts/python/devops.py +57 -38
  51. machineconfig/scripts/python/devops_navigator.py +17 -3
  52. machineconfig/scripts/python/fire_jobs.py +10 -193
  53. machineconfig/scripts/python/ftpx.py +5 -224
  54. machineconfig/scripts/python/graph/cli_graph.json +8743 -0
  55. machineconfig/scripts/python/{env_manager → helper_env}/path_manager_tui.py +2 -2
  56. machineconfig/scripts/python/{env_manager → helpers/helper_env}/env_manager_tui.py +1 -1
  57. machineconfig/scripts/python/helpers/helper_env/path_manager_tui.py +228 -0
  58. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_crush.py +1 -1
  59. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_cursor_agents.py +1 -1
  60. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_gemini.py +1 -1
  61. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_qwen.py +1 -1
  62. machineconfig/scripts/python/helpers/helpers_agents/agents_impl.py +168 -0
  63. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_help_launch.py +10 -7
  64. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
  65. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
  66. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/copilot/config.yml +1 -0
  67. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/crush/crush.json +10 -0
  68. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/gemini/settings.json +12 -0
  69. machineconfig/scripts/python/helpers/helpers_agents/privacy/privacy.py +109 -0
  70. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/templates/template.sh +3 -1
  71. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_copy.py +6 -6
  72. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_mount.py +10 -5
  73. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_sync.py +4 -4
  74. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers2.py +1 -1
  75. machineconfig/scripts/python/helpers/helpers_croshell/croshell_impl.py +229 -0
  76. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/scheduler.py +4 -4
  77. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/start_slidev.py +7 -6
  78. machineconfig/scripts/python/helpers/helpers_devops/backup_config.py +149 -0
  79. machineconfig/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +262 -0
  80. machineconfig/scripts/python/helpers/helpers_devops/cli_config.py +130 -0
  81. machineconfig/scripts/python/helpers/helpers_devops/cli_config_dotfile.py +274 -0
  82. machineconfig/scripts/python/helpers/helpers_devops/cli_config_mount.py +77 -0
  83. machineconfig/scripts/python/helpers/helpers_devops/cli_data.py +71 -0
  84. machineconfig/scripts/python/helpers/helpers_devops/cli_nw.py +285 -0
  85. machineconfig/scripts/python/helpers/helpers_devops/cli_repos.py +274 -0
  86. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_self.py +84 -33
  87. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_share_file.py +44 -30
  88. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_share_server.py +26 -43
  89. machineconfig/scripts/python/helpers/helpers_devops/cli_share_temp.py +69 -0
  90. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_share_terminal.py +12 -6
  91. machineconfig/scripts/python/helpers/helpers_devops/cli_ssh.py +167 -0
  92. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_status.py +12 -6
  93. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_update_repos.py +1 -1
  94. machineconfig/scripts/python/{interactive.py → helpers/helpers_devops/interactive.py} +64 -50
  95. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/commands.py +25 -0
  96. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/device_entry.py +17 -0
  97. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/devices.py +17 -0
  98. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/linux.py +103 -0
  99. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/macos.py +100 -0
  100. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/selection.py +47 -0
  101. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/utils.py +28 -0
  102. machineconfig/scripts/python/helpers/helpers_devops/mount_helpers/windows.py +91 -0
  103. machineconfig/scripts/python/helpers/helpers_devops/run_script.py +197 -0
  104. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +41 -0
  105. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +48 -0
  106. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_wezterm_theme.py +3 -3
  107. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/file_wrangler.py +1 -0
  108. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_args_helper.py +1 -0
  109. machineconfig/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +233 -0
  110. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_route_helper.py +3 -3
  111. machineconfig/scripts/python/helpers/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  112. machineconfig/scripts/python/helpers/helpers_msearch/msearch_impl.py +248 -0
  113. machineconfig/scripts/python/{helpers_msearch → helpers/helpers_msearch}/scripts_linux/fzfg +4 -3
  114. machineconfig/scripts/python/helpers/helpers_msearch/scripts_linux/search_with_context.sh +48 -0
  115. machineconfig/scripts/python/{helpers_msearch → helpers/helpers_msearch}/scripts_windows/fzfg.ps1 +2 -7
  116. machineconfig/scripts/python/helpers/helpers_navigator/__init__.py +20 -0
  117. machineconfig/scripts/python/helpers/helpers_navigator/cli_graph_loader.py +234 -0
  118. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/command_builder.py +61 -13
  119. machineconfig/scripts/python/helpers/helpers_navigator/command_detail.py +153 -0
  120. machineconfig/scripts/python/helpers/helpers_navigator/command_tree.py +45 -0
  121. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/data_models.py +18 -11
  122. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/main_app.py +5 -5
  123. machineconfig/scripts/python/helpers/helpers_network/__init__.py +0 -0
  124. machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/address.py +52 -10
  125. machineconfig/scripts/python/helpers/helpers_network/address_switch.py +78 -0
  126. machineconfig/scripts/python/helpers/helpers_network/ftpx_impl.py +276 -0
  127. machineconfig/scripts/python/helpers/helpers_network/ssh/__init__.py +0 -0
  128. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_add_identity.py +73 -0
  129. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_add_key_windows.py +23 -0
  130. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_add_ssh_key.py +169 -0
  131. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_cloud_init.py +33 -0
  132. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux.py +338 -0
  133. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux_utils.py +35 -0
  134. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows.py +245 -0
  135. machineconfig/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows_utils.py +34 -0
  136. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action.py +3 -3
  137. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action_helper.py +3 -3
  138. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/cloud_repo_sync.py +120 -37
  139. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/grource.py +3 -2
  140. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/record.py +33 -13
  141. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/repo_analyzer_2.py +63 -19
  142. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/update.py +0 -6
  143. machineconfig/scripts/python/helpers/helpers_search/script_help.py +81 -0
  144. machineconfig/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
  145. machineconfig/scripts/python/helpers/helpers_sessions/attach_impl.py +87 -0
  146. machineconfig/scripts/python/helpers/helpers_sessions/sessions_impl.py +114 -0
  147. machineconfig/scripts/python/{helpers_sessions → helpers/helpers_sessions}/sessions_multiprocess.py +1 -2
  148. machineconfig/scripts/python/helpers/helpers_sessions/utils.py +69 -0
  149. machineconfig/scripts/python/{helpers_utils → helpers/helpers_utils}/download.py +1 -1
  150. machineconfig/scripts/python/{helpers_devops/cli_utils.py → helpers/helpers_utils/pdf.py} +2 -2
  151. machineconfig/scripts/python/{helpers_utils/path.py → helpers/helpers_utils/python.py} +65 -40
  152. machineconfig/scripts/python/helpers/helpers_utils/specs.py +246 -0
  153. machineconfig/scripts/python/mcfg_entry.py +126 -48
  154. machineconfig/scripts/python/msearch.py +16 -61
  155. machineconfig/scripts/python/sessions.py +137 -191
  156. machineconfig/scripts/python/utils.py +104 -24
  157. machineconfig/settings/atuin/config.toml +294 -0
  158. machineconfig/settings/atuin/themes/catppuccin-mocha-mauve.toml +12 -0
  159. machineconfig/settings/linters/.ruff.toml +2 -1
  160. machineconfig/settings/mprocs/windows/mprocs.yaml +2 -2
  161. machineconfig/settings/shells/bash/init.sh +6 -10
  162. machineconfig/settings/shells/nushell/config.nu +23 -1
  163. machineconfig/settings/shells/nushell/env.nu +22 -48
  164. machineconfig/settings/shells/nushell/init.nu +64 -240
  165. machineconfig/settings/shells/pwsh/init.ps1 +71 -5
  166. machineconfig/settings/shells/pwsh/search_pwsh_history.ps1 +99 -0
  167. machineconfig/settings/shells/wezterm/wezterm.lua +4 -0
  168. machineconfig/settings/shells/wt/settings.json +31 -37
  169. machineconfig/settings/shells/zsh/init.sh +25 -5
  170. machineconfig/settings/television/cable_unix/bash-history.toml +1 -1
  171. machineconfig/settings/television/cable_windows/pwsh-history.toml +1 -1
  172. machineconfig/settings/tv/config.toml +234 -0
  173. machineconfig/settings/tv/themes/catppuccin-mocha-sky.toml +22 -0
  174. machineconfig/settings/wsl/.wslconfig +5 -30
  175. machineconfig/settings/wt/__init__.py +0 -0
  176. machineconfig/settings/yazi/yazi_linux.toml +18 -8
  177. machineconfig/settings/zellij/__init__.py +0 -0
  178. machineconfig/settings/zellij/config.kdl +0 -295
  179. machineconfig/settings/zellij/layouts/__init__.py +0 -0
  180. machineconfig/settings/zellij/layouts/st.kdl +39 -9
  181. machineconfig/settings/zellij/layouts/st2.kdl +6 -2
  182. machineconfig/setup_linux/__init__.py +0 -1
  183. machineconfig/setup_linux/apps_desktop.sh +8 -27
  184. machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
  185. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +3 -0
  186. machineconfig/setup_mac/__init__.py +0 -2
  187. machineconfig/setup_windows/__init__.py +2 -5
  188. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +14 -13
  189. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +4 -3
  190. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +3 -3
  191. machineconfig/type_hinting/sql/__init__.py +1 -0
  192. machineconfig/type_hinting/sql/base.py +216 -0
  193. machineconfig/type_hinting/sql/core_schema.py +64 -0
  194. machineconfig/type_hinting/sql/core_schema_typeddict.py +41 -0
  195. machineconfig/type_hinting/sql/typeddict_codegen.py +222 -0
  196. machineconfig/type_hinting/typedict/__init__.py +1 -0
  197. machineconfig/type_hinting/typedict/ast_utils.py +130 -0
  198. machineconfig/type_hinting/typedict/generator_helpers.py +319 -0
  199. machineconfig/type_hinting/typedict/generators.py +231 -0
  200. machineconfig/type_hinting/typedict/polars_schema.py +24 -0
  201. machineconfig/type_hinting/typedict/polars_schema_typeddict.py +63 -0
  202. machineconfig/utils/accessories.py +24 -0
  203. machineconfig/utils/code.py +78 -33
  204. machineconfig/utils/files/ascii_art.py +10 -14
  205. machineconfig/utils/files/headers.py +3 -5
  206. machineconfig/utils/files/read.py +8 -1
  207. machineconfig/utils/installer_utils/github_release_bulk.py +11 -91
  208. machineconfig/utils/installer_utils/github_release_scraper.py +99 -0
  209. machineconfig/utils/installer_utils/install_from_url.py +1 -1
  210. machineconfig/utils/installer_utils/installer_class.py +12 -4
  211. machineconfig/utils/installer_utils/installer_cli.py +7 -17
  212. machineconfig/utils/installer_utils/installer_helper.py +52 -36
  213. machineconfig/utils/installer_utils/installer_locator_utils.py +15 -25
  214. machineconfig/utils/installer_utils/installer_runner.py +4 -4
  215. machineconfig/utils/io.py +25 -8
  216. machineconfig/utils/meta.py +6 -4
  217. machineconfig/utils/options.py +49 -19
  218. machineconfig/utils/options_utils/__init__.py +0 -0
  219. machineconfig/utils/options_utils/options_tv_linux.py +211 -0
  220. machineconfig/utils/options_utils/options_tv_windows.py +88 -0
  221. machineconfig/utils/options_utils/tv_options.py +37 -0
  222. machineconfig/utils/path_extended.py +8 -7
  223. machineconfig/utils/procs.py +35 -27
  224. machineconfig/utils/scheduler.py +8 -2
  225. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  226. machineconfig/utils/schemas/layouts/layout_types.py +10 -0
  227. machineconfig/utils/source_of_truth.py +7 -1
  228. machineconfig/utils/ssh.py +73 -23
  229. machineconfig/utils/ssh_utils/abc.py +1 -1
  230. machineconfig/utils/ssh_utils/copy_from_here.py +19 -14
  231. machineconfig/utils/ssh_utils/copy_to_here.py +2 -1
  232. machineconfig/utils/ssh_utils/utils.py +23 -7
  233. machineconfig/utils/ssh_utils/wsl.py +107 -170
  234. machineconfig/utils/ssh_utils/wsl_helper.py +217 -0
  235. machineconfig/utils/upgrade_packages.py +4 -8
  236. {machineconfig-7.98.dist-info → machineconfig-8.61.dist-info}/METADATA +30 -23
  237. machineconfig-8.61.dist-info/RECORD +539 -0
  238. {machineconfig-7.98.dist-info → machineconfig-8.61.dist-info}/entry_points.txt +0 -1
  239. machineconfig/jobs/installer/check_installations.py +0 -248
  240. machineconfig/profile/backup.toml +0 -49
  241. machineconfig/profile/mapper.toml +0 -263
  242. machineconfig/scripts/linux/other/share_cloud.sh +0 -64
  243. machineconfig/scripts/linux/other/share_nfs +0 -49
  244. machineconfig/scripts/linux/other/start_docker +0 -23
  245. machineconfig/scripts/linux/other/switch_ip +0 -20
  246. machineconfig/scripts/python/helpers/run_py_script.py +0 -79
  247. machineconfig/scripts/python/helpers/tmp_py_scripts/a.py +0 -26
  248. machineconfig/scripts/python/helpers_devops/cli_config.py +0 -105
  249. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -89
  250. machineconfig/scripts/python/helpers_devops/cli_data.py +0 -25
  251. machineconfig/scripts/python/helpers_devops/cli_nw.py +0 -214
  252. machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -215
  253. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -80
  254. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -3
  255. machineconfig/scripts/python/helpers_navigator/__init__.py +0 -20
  256. machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -44
  257. machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -620
  258. machineconfig/scripts/python/helpers_network/devops_add_identity.py +0 -82
  259. machineconfig/scripts/python/helpers_network/devops_add_ssh_key.py +0 -153
  260. machineconfig/scripts/python/helpers_network/mount_drive +0 -128
  261. machineconfig/scripts/python/helpers_network/mount_nfs +0 -49
  262. machineconfig/scripts/python/helpers_network/mount_nfs.py +0 -85
  263. machineconfig/scripts/python/helpers_network/mount_nw_drive +0 -61
  264. machineconfig/scripts/python/helpers_network/mount_nw_drive.py +0 -48
  265. machineconfig/scripts/python/helpers_network/mount_smb +0 -3
  266. machineconfig/scripts/python/helpers_network/mount_ssh.py +0 -64
  267. machineconfig/scripts/python/helpers_network/ssh_debug_linux.py +0 -391
  268. machineconfig/scripts/python/helpers_network/ssh_debug_windows.py +0 -338
  269. machineconfig/scripts/python/helpers_network/wsl_windows_transfer.py +0 -67
  270. machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -77
  271. machineconfig/scripts/python/terminal.py +0 -133
  272. machineconfig/scripts/windows/mounts/Restore-ThunderbirdProfile.ps1 +0 -92
  273. machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -42
  274. machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -9
  275. machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -2
  276. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
  277. machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -34
  278. machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -16
  279. machineconfig/settings/zellij/config.orig.kdl +0 -295
  280. machineconfig/setup_linux/others/android.sh +0 -2
  281. machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -30
  282. machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
  283. machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
  284. machineconfig/setup_mac/ssh/openssh_setup.sh +0 -114
  285. machineconfig/setup_windows/others/docker.ps1 +0 -7
  286. machineconfig/setup_windows/others/obs.ps1 +0 -4
  287. machineconfig/setup_windows/others/power_options.ps1 +0 -7
  288. machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -29
  289. machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
  290. machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -37
  291. machineconfig/setup_windows/ssh/openssh-server_add_key.ps1 +0 -7
  292. machineconfig/setup_windows/ssh/openssh-server_copy-ssh-id.ps1 +0 -14
  293. machineconfig/utils/options_tv.py +0 -119
  294. machineconfig/utils/tst.py +0 -20
  295. machineconfig-7.98.dist-info/RECORD +0 -504
  296. /machineconfig/{jobs/installer/custom_dev → cluster/sessions_managers/wt_utils/examples}/__init__.py +0 -0
  297. /machineconfig/{scripts/python/helpers_agents → jobs/installer/checks}/__init__.py +0 -0
  298. /machineconfig/{scripts/python/helpers_agents/agentic_frameworks → jobs/installer/python_scripts}/__init__.py +0 -0
  299. /machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
  300. /machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
  301. /machineconfig/jobs/installer/{custom_dev → python_scripts}/cloudflare_warp_cli.py +0 -0
  302. /machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
  303. /machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +0 -0
  304. /machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
  305. /machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
  306. /machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
  307. /machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
  308. /machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
  309. /machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +0 -0
  310. /machineconfig/jobs/{installer/linux_scripts → scripts/bash_scripts}/lid.sh +0 -0
  311. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
  312. /machineconfig/scripts/python/ai/{solutions/_shared.py → utils/shared.py} +0 -0
  313. /machineconfig/scripts/python/{helpers_cloud → graph}/__init__.py +0 -0
  314. /machineconfig/scripts/python/{helpers_croshell → helpers}/__init__.py +0 -0
  315. /machineconfig/scripts/python/{env_manager → helpers/helper_env}/__init__.py +0 -0
  316. /machineconfig/scripts/python/{env_manager → helpers/helper_env}/path_manager_backend.py +0 -0
  317. /machineconfig/scripts/python/{helpers_devops → helpers/helpers_agents}/__init__.py +0 -0
  318. /machineconfig/scripts/python/{helpers_devops/themes → helpers/helpers_agents/agentic_frameworks}/__init__.py +0 -0
  319. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_crush.json +0 -0
  320. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_help_search.py +0 -0
  321. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_helper_types.py +0 -0
  322. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_load_balancer.py +0 -0
  323. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/templates/prompt.txt +0 -0
  324. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/templates/template.ps1 +0 -0
  325. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_cloud}/__init__.py +0 -0
  326. /machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_helpers.py +0 -0
  327. /machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers5.py +0 -0
  328. /machineconfig/scripts/python/{helpers_network → helpers/helpers_croshell}/__init__.py +0 -0
  329. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/crosh.py +0 -0
  330. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/pomodoro.py +0 -0
  331. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer.py +0 -0
  332. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer_template.py +0 -0
  333. /machineconfig/scripts/python/{helpers_sessions → helpers/helpers_devops}/__init__.py +0 -0
  334. /machineconfig/{setup_windows/wt_and_pwsh → scripts/python/helpers/helpers_devops/mount_helpers}/__init__.py +0 -0
  335. /machineconfig/scripts/python/{helpers_devops/themes/choose_starship_theme.ps1 → helpers/helpers_devops/themes/__init__.py} +0 -0
  336. /machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_pwsh_theme.ps1 +0 -0
  337. /machineconfig/scripts/python/{helpers_fire_command/f.py → helpers/helpers_fire_command/__init__.py} +0 -0
  338. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/cloud_manager.py +0 -0
  339. /machineconfig/scripts/python/{helpers_fire_command/fire_jobs_streamlit_helper.py → helpers/helpers_fire_command/f.py} +0 -0
  340. /machineconfig/scripts/python/{helpers_msearch → helpers/helpers_msearch}/__init__.py +0 -0
  341. /machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/search_bar.py +0 -0
  342. /machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/onetimeshare.py +0 -0
  343. /machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/wifi_conn.py +0 -0
  344. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/clone.py +0 -0
  345. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/repo_analyzer_1.py +0 -0
  346. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/sync.py +0 -0
  347. /machineconfig/scripts/python/helpers/{ast_search.py → helpers_search/ast_search.py} +0 -0
  348. /machineconfig/scripts/python/helpers/{qr_code.py → helpers_search/qr_code.py} +0 -0
  349. /machineconfig/scripts/python/helpers/{repo_rag.py → helpers_search/repo_rag.py} +0 -0
  350. /machineconfig/scripts/python/helpers/{symantic_search.py → helpers_search/symantic_search.py} +0 -0
  351. /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
  352. {machineconfig-7.98.dist-info → machineconfig-8.61.dist-info}/WHEEL +0 -0
  353. {machineconfig-7.98.dist-info → machineconfig-8.61.dist-info}/top_level.txt +0 -0
@@ -1,23 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Ensure the script is run with sudo privileges
4
- if [ "$EUID" -ne 0 ]; then
5
- echo "Please run this script with sudo."
6
- exit 1
7
- fi
8
-
9
- dockerd_path=$(which dockerd)
10
- echo "dockerd_path: $dockerd_path"
11
-
12
- launch_dockerd="sudo $dockerd_path"
13
- echo "launch_dockerd: $launch_dockerd"
14
-
15
- zellij action new-tab --name dockerd
16
- sleep 1
17
- zellij action go-to-tab-name dockerd
18
- sleep 0.5
19
- cd $HOME
20
- zellij action new-pane --direction down -- sudo $dockerd_path
21
- zellij action move-focus up; sleep 0.2
22
- zellij action close-pane; sleep 0.2
23
-
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- echo "🔁 Switching IP ... "
4
- echo "Current IP: $(curl -s api.ipify.org)"
5
- echo "🔻 Deactivating current connection ... "
6
- warp-cli registration delete
7
- # echo "✅ Deactivated current connection ... "
8
- echo "😴 Sleeping for 2 seconds ... "
9
- sleep 2
10
- echo "🔼 Registering new connection ... "
11
- warp-cli registration new
12
- # echo "✅ Registered new connection ... "
13
- echo "🔗 Connecting ... "
14
- warp-cli connect
15
- echo "😴 Sleeping for 2 seconds ... "
16
- sleep 2
17
- echo "🔍 Checking status of warp ... "
18
- warp-cli status
19
- echo "🔍 Checking new IP ... $(curl -s api.ipify.org) "
20
- echo "✅ Done ... "
@@ -1,79 +0,0 @@
1
-
2
-
3
- import typer
4
- from typing import Annotated, Optional, Literal
5
-
6
-
7
- def run_py_script(name: Annotated[str, typer.Argument(help="Name of the python script to run, e.g., 'a' for a.py")],
8
- where: Annotated[Literal["all", "private", "public", "tmp"], typer.Option("--where", "-w", help="Where to look for the script: any, private, public, tmp")] = "all",
9
- command: Annotated[Optional[bool], typer.Option(..., "--command", "-c", help="Run as command")] = False,
10
- # use_machineconfig_env: Annotated[bool, typer.Option(..., "--use-machineconfig-env/--no-use-machineconfig-env", "-m/-nm", help="Whether to use the machineconfig python environment")] = False
11
- ) -> None:
12
- """
13
- Run a temporary python script stored in machineconfig/scripts/python/helpers/tmp_py_scripts.
14
- """
15
- from machineconfig.utils.source_of_truth import CONFIG_ROOT
16
- from pathlib import Path
17
- if command:
18
- exec(name)
19
- return
20
- if Path(name).is_file():
21
- import machineconfig
22
- import subprocess
23
- import sys
24
- subprocess.run([sys.executable, name], cwd=machineconfig.__path__[0])
25
- return
26
-
27
- target_py_file: Optional[Path] = None
28
- if where in ["all", "private"]:
29
- result = Path.home().joinpath("dotfiles/scripts/python").joinpath(f"{name}.py")
30
- if result.exists():
31
- target_py_file = result
32
- if target_py_file is None and where in ["all", "public"]:
33
- result = CONFIG_ROOT.joinpath("scripts_python").joinpath(f"{name}.py")
34
- if result.exists():
35
- target_py_file = result
36
- if target_py_file is None and where in ["all", "tmp"]:
37
- url = f"""https://raw.githubusercontent.com/thisismygitrepo/machineconfig/refs/heads/main/src/machineconfig/scripts/python/helpers/tmp_py_scripts/{name}.py"""
38
- print(f"Fetching temporary script from {url} ...")
39
- import requests
40
- response = requests.get(url)
41
- if response.status_code != 200:
42
- print(f"❌ ERROR: Could not fetch script '{name}.py' from repository. Status Code: {response.status_code}")
43
- raise RuntimeError(f"Could not fetch script '{name}.py' from repository.")
44
- script_content = response.text
45
- from machineconfig.utils.code import get_uv_command_executing_python_script, exit_then_run_shell_script
46
- shell_script, _shell_script_path = get_uv_command_executing_python_script(python_script=script_content, uv_project_dir=None, uv_with=None, prepend_print=False)
47
- exit_then_run_shell_script(script=shell_script)
48
-
49
-
50
-
51
- def copy_script_to_local(name: Annotated[str, typer.Argument(help="Name of the temporary python script to copy, e.g., 'a' for a.py")],
52
- alias: Annotated[Optional[str], typer.Option("--alias", "-a", help="Whether to create call it a different name locally")] = None
53
- ) -> None:
54
- """
55
- Copy a temporary python script stored in machineconfig/scripts/python/helpers/tmp_py_scripts to the local machine.
56
- """
57
- url = f"""https://raw.githubusercontent.com/thisismygitrepo/machineconfig/refs/heads/main/src/machineconfig/scripts/python/helpers/tmp_py_scripts/{name}.py"""
58
- import requests
59
- response = requests.get(url)
60
- if response.status_code != 200:
61
- print(f"❌ ERROR: Could not fetch script '{name}.py' from repository. Status Code: {response.status_code}")
62
- raise RuntimeError(f"Could not fetch script '{name}.py' from repository.")
63
- script_content = response.text
64
- from machineconfig.utils.source_of_truth import CONFIG_ROOT
65
- local_path = CONFIG_ROOT.joinpath(f"scripts_python/{alias or name}.py")
66
- with open(local_path, "w") as f:
67
- f.write(script_content)
68
- print(f"✅ Script '{name}.py' has been copied to '{local_path}'.")
69
-
70
-
71
- def get_app():
72
- app = typer.Typer(
73
- name="run-tmp-script",
74
- help="Helper to run temporary python scripts stored in machineconfig/scripts/python/helpers/tmp_py_scripts",
75
- no_args_is_help=True,
76
- )
77
- from machineconfig.scripts.python.helpers.tmp_py_scripts import a
78
- app.command()(a.main)
79
- return app
@@ -1,26 +0,0 @@
1
-
2
- """
3
- #!/usr/bin/env -S uv run
4
- # /// script
5
- # requires-python = ">=3.13"
6
- # dependencies = [
7
- # "rich",
8
- # "polars",
9
- # "typer>=0.12",
10
- # "loguru",
11
- # "numpy",
12
- # ]
13
- # ///
14
-
15
- """
16
-
17
-
18
- def main():
19
- """a,b,c"""
20
- print("This is a helper function in a.py")
21
- import numpy as np
22
- print("Numpy version:", np.__version__)
23
-
24
-
25
- if __name__ == "__main__":
26
- main()
@@ -1,105 +0,0 @@
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 link_wsl_and_windows_home():
79
- """🔗 Link WSL home and Windows home directories."""
80
- import machineconfig.utils.ssh_utils.wsl as wsl_utils
81
- wsl_utils.link_wsl_and_windows()
82
-
83
-
84
- def get_app():
85
- config_apps = typer.Typer(help="⚙️ [c] configuration subcommands", no_args_is_help=True, add_help_option=False, add_completion=False)
86
- config_apps.command("private", no_args_is_help=True, help="🔗 [v] Manage private configuration files.")(create_links_export.main_private_from_parser)
87
- config_apps.command("v", no_args_is_help=True, hidden=True)(create_links_export.main_private_from_parser)
88
- config_apps.command("public", no_args_is_help=True, help="🔗 [b] Manage public configuration files.")(create_links_export.main_public_from_parser)
89
- config_apps.command("b", no_args_is_help=True, help="Manage public configuration files.", hidden=True)(create_links_export.main_public_from_parser)
90
- config_apps.command("dotfile", no_args_is_help=True, help="🔗 [d] Manage dotfiles.")(dotfile_module.main)
91
- config_apps.command("d", no_args_is_help=True, hidden=True)(dotfile_module.main)
92
- config_apps.command("shell", no_args_is_help=False, help="🔗 [s] Configure your shell profile.")(configure_shell_profile)
93
- config_apps.command("s", no_args_is_help=False, help="Configure your shell profile.", hidden=True)(configure_shell_profile)
94
- config_apps.command("starship-theme", no_args_is_help=False, help="🔗 [t] Select starship prompt theme.")(starship_theme)
95
- config_apps.command("t", no_args_is_help=False, help="Select starship prompt theme.", hidden=True)(starship_theme)
96
- config_apps.command("pwsh-theme", no_args_is_help=False, help="🔗 [T] Select powershell prompt theme.")(pwsh_theme)
97
- config_apps.command("T", no_args_is_help=False, help="Select powershell prompt theme.", hidden=True)(pwsh_theme)
98
-
99
- config_apps.command("copy-assets", no_args_is_help=True, help="🔗 [c] Copy asset files from library to machine.", hidden=False)(copy_assets)
100
- config_apps.command("c", no_args_is_help=True, help="Copy asset files from library to machine.", hidden=True)(copy_assets)
101
-
102
- config_apps.command("link-wsl-windows", no_args_is_help=False, help="🔗 [l] Link WSL home and Windows home directories.", hidden=False)(link_wsl_and_windows_home)
103
- config_apps.command("l", no_args_is_help=False, help="Link WSL home and Windows home directories.", hidden=True)(link_wsl_and_windows_home)
104
-
105
- return config_apps
@@ -1,89 +0,0 @@
1
-
2
- """Like yadm and dotter."""
3
-
4
- from machineconfig.profile.create_links_export import ON_CONFLICT_LOOSE, ON_CONFLICT_MAPPER
5
- from typing import Annotated, Literal
6
- import typer
7
-
8
-
9
-
10
- def main(
11
- file: Annotated[str, typer.Argument(help="file/folder path.")],
12
- method: Annotated[Literal["symlink", "s", "copy", "c"], typer.Option(..., "--method", "-m", help="Method to use for linking files")] = "copy",
13
- on_conflict: Annotated[ON_CONFLICT_LOOSE, typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
14
- sensitivity: Annotated[Literal["private", "v", "public", "b"], typer.Option(..., "--sensitivity", "-s", help="Sensitivity of the config file.")] = "private",
15
- destination: Annotated[str, typer.Option("--destination", "-d", help="destination folder (override the default, use at your own risk)")] = "",
16
- shared: Annotated[bool, typer.Option("--shared", "-sh", help="Whether the config file is shared across destinations directory.")] = False,
17
- ) -> None:
18
- from rich.console import Console
19
- from rich.panel import Panel
20
- from machineconfig.utils.links import symlink_map, copy_map
21
- from pathlib import Path
22
- match sensitivity:
23
- case "private" | "v":
24
- backup_root = Path.home().joinpath("dotfiles/mapper")
25
- case "public" | "b":
26
- from machineconfig.utils.source_of_truth import CONFIG_ROOT
27
- backup_root = Path(CONFIG_ROOT).joinpath("dotfiles/mapper")
28
-
29
- console = Console()
30
- orig_path = Path(file).expanduser().absolute()
31
- if destination == "":
32
- if shared:
33
- new_path = backup_root.joinpath("shared").joinpath(orig_path.name)
34
- new_path.parent.mkdir(parents=True, exist_ok=True)
35
- else:
36
- new_path = backup_root.joinpath(orig_path.relative_to(Path.home()))
37
- new_path.parent.mkdir(parents=True, exist_ok=True)
38
- else:
39
- if shared:
40
- dest_path = Path(destination).expanduser().absolute()
41
- dest_path.mkdir(parents=True, exist_ok=True)
42
- new_path = dest_path.joinpath("shared").joinpath(orig_path.name)
43
- new_path.parent.mkdir(parents=True, exist_ok=True)
44
- else:
45
- dest_path = Path(destination).expanduser().absolute()
46
- dest_path.mkdir(parents=True, exist_ok=True)
47
- new_path = dest_path.joinpath(orig_path.name)
48
- match method:
49
- case "copy" | "c":
50
- try:
51
- copy_map(config_file_default_path=orig_path, self_managed_config_file_path=new_path, on_conflict=ON_CONFLICT_MAPPER[on_conflict]) # type: ignore[arg-type]
52
- except Exception as e:
53
- typer.echo(f"[red]Error:[/] {e}")
54
- typer.Exit(code=1)
55
- return
56
- case "symlink" | "s":
57
- try:
58
- symlink_map(config_file_default_path=orig_path, self_managed_config_file_path=new_path, on_conflict=ON_CONFLICT_MAPPER[on_conflict]) # type: ignore[arg-type]
59
- except Exception as e:
60
- typer.echo(f"[red]Error:[/] {e}")
61
- typer.Exit(code=1)
62
- case _:
63
- raise ValueError(f"Unknown method: {method}")
64
- console.print(Panel("\n".join(["✅ Symbolic link created successfully!", "🔄 Add the following snippet to mapper.toml to persist this mapping:",]), title="Symlink Created", border_style="green", padding=(1, 2),))
65
-
66
- # mapper_snippet = "\n".join(
67
- # [
68
- # f"[bold]📝 Edit configuration file:[/] [cyan]nano {Path(CONFIG_ROOT)}/symlinks/mapper.toml[/cyan]",
69
- # "",
70
- # f"[{new_path.parent.name}]",
71
- # f"{orig_path.name.split('.')[0]} = {{ this = '{orig_path.as_posix()}', to_this = '{new_path.as_posix()}' }}",
72
- # ]
73
- # )
74
- # console.print(
75
- # Panel(
76
- # mapper_snippet,
77
- # title="Mapper Entry",
78
- # border_style="cyan",
79
- # padding=(1, 2),
80
- # )
81
- # )
82
-
83
-
84
- def arg_parser() -> None:
85
- typer.run(main)
86
-
87
-
88
- if __name__ == "__main__":
89
- arg_parser()
@@ -1,25 +0,0 @@
1
-
2
- import typer
3
- from typing import Annotated, Optional
4
-
5
- def backup(cloud: Annotated[Optional[str], typer.Option("--cloud", "-c", help="☁️ Cloud configuration name (rclone config name)")] = None,
6
- which: Annotated[Optional[str], typer.Option("--which", "-w", help="📝 Comma-separated list of items to BACKUP (from backup.toml), or 'all' for all items")] = None):
7
- """💾 BACKUP"""
8
- from machineconfig.scripts.python.helpers_devops.devops_backup_retrieve import main_backup_retrieve
9
- main_backup_retrieve(direction="BACKUP", which=which, cloud=cloud)
10
-
11
-
12
- def retrieve(cloud: Annotated[Optional[str], typer.Option("--cloud", "-c", help="☁️ Cloud configuration name (rclone config name)")] = None,
13
- which: Annotated[Optional[str], typer.Option("--which", "-w", help="📝 Comma-separated list of items to RETRIEVE (from backup.toml), or 'all' for all items")] = None):
14
- """📥 RETRIEVE"""
15
- from machineconfig.scripts.python.helpers_devops.devops_backup_retrieve import main_backup_retrieve
16
- main_backup_retrieve(direction="RETRIEVE", which=which, cloud=cloud)
17
-
18
-
19
- def get_app() -> typer.Typer:
20
- app = typer.Typer(name="data", help="💾 [d] Backup and Retrieve configuration files and directories to/from cloud storage using rclone.", no_args_is_help=True)
21
- app.command(name="backup", no_args_is_help=True, hidden=False, help="💾 [b] Backup files and directories to cloud storage using rclone.")(backup)
22
- app.command(name="b", no_args_is_help=True, hidden=True,)(backup)
23
- app.command(name="retrieve", no_args_is_help=True, hidden=False, help="📥 [r] Retrieve files and directories from cloud storage using rclone.")(retrieve)
24
- app.command(name="r", no_args_is_help=True, hidden=True, )(retrieve)
25
- return app
@@ -1,214 +0,0 @@
1
-
2
- import machineconfig.scripts.python.helpers_devops.cli_share_file
3
- import machineconfig.scripts.python.helpers_devops.cli_share_terminal as cli_share_terminal
4
- import machineconfig.scripts.python.helpers_devops.cli_share_server as cli_share_server
5
- import typer
6
- from typing import Optional, Annotated
7
-
8
-
9
-
10
- def install_ssh_server():
11
- """📡 SSH install server"""
12
- import platform
13
- if platform.system() == "Windows":
14
- from machineconfig.setup_windows import SSH_SERVER
15
- elif platform.system() == "Linux" or platform.system() == "Darwin":
16
- from machineconfig.setup_linux import SSH_SERVER
17
- else:
18
- raise NotImplementedError(f"Platform {platform.system()} is not supported.")
19
- from machineconfig.utils.code import run_shell_script
20
- run_shell_script(script=SSH_SERVER.read_text(encoding="utf-8"))
21
-
22
-
23
- def add_ssh_key(path: Annotated[Optional[str], typer.Option(..., help="Path to the public key file")] = None,
24
- choose: Annotated[bool, typer.Option(..., "--choose", "-c", help="Choose from available public keys in ~/.ssh/*.pub")] = False,
25
- value: Annotated[bool, typer.Option(..., "--value", "-v", help="Paste the public key content manually")] = False,
26
- github: Annotated[Optional[str], typer.Option(..., "--github", "-g", help="Fetch public keys from a GitHub username")] = None
27
- ):
28
- """🔑 SSH add pub key to this machine so its accessible by owner of corresponding private key."""
29
- import machineconfig.scripts.python.helpers_network.devops_add_ssh_key as helper
30
- helper.main(pub_path=path, pub_choose=choose, pub_val=value, from_github=github)
31
- def add_ssh_identity():
32
- """🗝️ SSH add identity (private key) to this machine"""
33
- import machineconfig.scripts.python.helpers_network.devops_add_identity as helper
34
- helper.main()
35
-
36
-
37
- def show_address() -> None:
38
- """📌 Show this computer addresses on network"""
39
- from machineconfig.utils.installer_utils.installer_cli import install_if_missing
40
- import subprocess
41
- install_if_missing("ipinfo")
42
- result = subprocess.run(
43
- ["ipinfo", "myip", "--json"],
44
- check=True,
45
- capture_output=True,
46
- text=True,
47
- encoding="utf-8",
48
- )
49
- import json
50
- loaded_json = json.loads(result.stdout)
51
- from rich import print_json
52
- print_json(data=loaded_json)
53
-
54
- import machineconfig.scripts.python.helpers_network.address as helper
55
- from rich.table import Table
56
- from rich.console import Console
57
- res = helper.get_all_ipv4_addresses()
58
- res.append( ("Public IP", loaded_json.get("ip", "N/A")))
59
-
60
- # loc = loaded_json["loc"]
61
- # cmd = f"""curl "https://maps.geoapify.com/v1/staticmap?style=osm-bright&width=600&height=300&center=lonlat:{loc}&zoom=6&marker=lonlat:{loc};color:%23ff0000;size:medium&apiKey=$GEOAPIFY_API_KEY" -o map.png && chafa map.png"""
62
- # from machineconfig.utils.code import run_shell_script
63
- # run_shell_script(script=cmd)
64
-
65
- table = Table(title="Network Interfaces")
66
- table.add_column("Interface", style="cyan")
67
- table.add_column("IP Address", style="green")
68
-
69
- for iface, ip in res:
70
- table.add_row(iface, ip)
71
-
72
- console = Console()
73
- console.print(table)
74
-
75
- res = helper.select_lan_ipv4(prefer_vpn=False)
76
- if res is not None:
77
- # ip, iface = res
78
- # print(f"Selected IP: {ip} on interface: {iface}")
79
- print(f"LAN IPv4: {res}")
80
- else:
81
- print("No network interfaces found.")
82
-
83
-
84
-
85
- def bind_wsl_port(port: Annotated[int, typer.Option(..., "--port", "-p", help="Port number to bind")]):
86
- code = f"""
87
-
88
- $wsl_ip = (wsl.exe hostname -I).Trim().Split(' ')[0]
89
- netsh interface portproxy add v4tov4 listenport={port} listenaddress=0.0.0.0 connectport={port} connectaddress=$wsl_ip
90
-
91
- """
92
- from machineconfig.utils.code import exit_then_run_shell_script
93
- exit_then_run_shell_script(code)
94
-
95
-
96
- def debug_ssh():
97
- """🐛 SSH debug"""
98
- from platform import system
99
- if system() == "Linux" or system() == "Darwin":
100
- import machineconfig.scripts.python.helpers_network.ssh_debug_linux as helper
101
- helper.ssh_debug_linux()
102
- elif system() == "Windows":
103
- import machineconfig.scripts.python.helpers_network.ssh_debug_windows as helper
104
- helper.ssh_debug_windows()
105
- else:
106
- raise NotImplementedError(f"Platform {system()} is not supported.")
107
-
108
- def wifi_select(
109
- ssid: Annotated[str, typer.Option("-n", "--ssid", help="🔗 SSID of WiFi (from config)")] = "MyPhoneHotSpot",
110
- manual: Annotated[bool, typer.Option("-m", "--manual", help="🔍 Manual network selection mode")] = False,
111
- list_: Annotated[bool, typer.Option("-l", "--list", help="📡 List available networks only")] = False,
112
- ) -> None:
113
- """Main function with fallback network selection"""
114
- from rich.panel import Panel
115
- from rich.prompt import Confirm
116
- from rich.console import Console
117
- from machineconfig.scripts.python.helpers_network.wifi_conn import try_config_connection, manual_network_selection, display_available_networks
118
- console = Console()
119
- console.print(Panel("📶 Welcome to the WiFi Connector Tool", title="[bold blue]WiFi Connection[/bold blue]", border_style="blue"))
120
-
121
- # If user just wants to list networks
122
- if list_:
123
- display_available_networks()
124
- return
125
-
126
- # If user wants manual mode, skip config and go straight to selection
127
- if manual:
128
- console.print("[blue]🔍 Manual network selection mode[/blue]")
129
- if manual_network_selection():
130
- console.print("[green]🎉 Successfully connected![/green]")
131
- else:
132
- console.print("[red]❌ Failed to connect[/red]")
133
- return
134
-
135
- # Try to connect using configuration first
136
- console.print(f"[blue]🔍 Attempting to connect to configured network: {ssid}[/blue]")
137
-
138
- if try_config_connection(ssid):
139
- console.print("[green]🎉 Successfully connected using configuration![/green]")
140
- return
141
-
142
- # Configuration failed, offer fallback options
143
- console.print("\n[yellow]⚠️ Configuration connection failed or not available[/yellow]")
144
-
145
- if Confirm.ask("[blue]Would you like to manually select a network?[/blue]", default=True):
146
- if manual_network_selection():
147
- console.print("[green]🎉 Successfully connected![/green]")
148
- else:
149
- console.print("[red]❌ Failed to connect[/red]")
150
- else:
151
- console.print("[blue]👋 Goodbye![/blue]")
152
-
153
-
154
-
155
- def reset_cloudflare_tunnel():
156
- code = """
157
- # cloudflared tunnel route dns glenn # creates CNAMES in Cloudflare dashboard
158
- # sudo systemctl stop cloudflared
159
- # test: cloudflared tunnel run glenn
160
- home_dir=$HOME
161
- cloudflared_path="$home_dir/.local/bin/cloudflared"
162
- sudo $cloudflared_path service uninstall
163
- sudo rm /etc/cloudflared/config.yml || true
164
- sudo $cloudflared_path --config $home_dir/.cloudflared/config.yml service install
165
- """
166
- print(code)
167
- def add_ip_exclusion_to_warp(ip: Annotated[str, typer.Option(..., "--ip", help="IP address to exclude from WARP")]):
168
- code = f"""
169
- sudo warp-cli tunnel ip add {ip}
170
- sudo warp-cli disconnect
171
- sudo warp-cli connect
172
- """
173
- print(code)
174
-
175
-
176
- def get_app():
177
- nw_apps = typer.Typer(help="🔐 [n] Network subcommands", no_args_is_help=True, add_help_option=False, add_completion=False)
178
- nw_apps.command(name="share-terminal", help="📡 [t] Share terminal via web browser")(cli_share_terminal.share_terminal)
179
- nw_apps.command(name="t", help="Share terminal via web browser", hidden=True)(cli_share_terminal.share_terminal)
180
-
181
- nw_apps.command(name="share-server", help="🌐 [s] Start local/global server to share files/folders via web browser", no_args_is_help=True)(cli_share_server.web_file_explorer)
182
- nw_apps.command(name="s", help="Start local/global server to share files/folders via web browser", hidden=True, no_args_is_help=True)(cli_share_server.web_file_explorer)
183
-
184
- # app = cli_share_server.get_share_file_app()
185
- # nw_apps.add_typer(app, name="share-file", help="📁 [f] Share a file via relay server", no_args_is_help=True)
186
- # nw_apps.add_typer(app, name="f", help="Share a file via relay server", hidden=True, no_args_is_help=True)
187
- nw_apps.command(name="send", no_args_is_help=True, hidden=False, help="📁 [sx] send files from here.")(machineconfig.scripts.python.helpers_devops.cli_share_file.share_file_send)
188
- nw_apps.command(name="sx", no_args_is_help=True, hidden=True, help="📁 [sx] send files from here.")(machineconfig.scripts.python.helpers_devops.cli_share_file.share_file_send)
189
- nw_apps.command(name="receive", no_args_is_help=True, hidden=False, help="📁 [rx] receive files to here.")(machineconfig.scripts.python.helpers_devops.cli_share_file.share_file_receive)
190
- nw_apps.command(name="rx", no_args_is_help=True, hidden=True, help="📁 [rx] receive files to here.")(machineconfig.scripts.python.helpers_devops.cli_share_file.share_file_receive)
191
-
192
- nw_apps.command(name="install-ssh-server", help="📡 [i] Install SSH server")(install_ssh_server)
193
- nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
194
- nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
195
- nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True, no_args_is_help=True)(add_ssh_key)
196
- nw_apps.command(name="add-ssh-identity", help="🗝️ [A] Add SSH identity (private key) to this machine")(add_ssh_identity)
197
- nw_apps.command(name="A", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
198
- nw_apps.command(name="show-address", help="📌 [a] Show this computer addresses on network")(show_address)
199
- nw_apps.command(name="a", help="Show this computer addresses on network", hidden=True)(show_address)
200
- nw_apps.command(name="debug-ssh", help="🐛 [d] Debug SSH connection")(debug_ssh)
201
- nw_apps.command(name="d", help="Debug SSH connection", hidden=True)(debug_ssh)
202
-
203
- nw_apps.command(name="wifi-select", no_args_is_help=True, help="📶 [w] WiFi connection utility.")(wifi_select)
204
- nw_apps.command(name="w", no_args_is_help=True, hidden=True)(wifi_select)
205
-
206
- nw_apps.command(name="bind-wsl-port", help="🔌 [b] Bind WSL port to Windows host", no_args_is_help=True)(bind_wsl_port)
207
- nw_apps.command(name="b", help="Bind WSL port to Windows host", hidden=True, no_args_is_help=True)(bind_wsl_port)
208
-
209
- nw_apps.command(name="reset-cloudflare-tunnel", help="☁️ [r] Reset Cloudflare tunnel service")(reset_cloudflare_tunnel)
210
- nw_apps.command(name="r", help="Reset Cloudflare tunnel service", hidden=True)(reset_cloudflare_tunnel)
211
- nw_apps.command(name="add-ip-exclusion-to-warp", help="🚫 [p] Add IP exclusion to WARP")(add_ip_exclusion_to_warp)
212
- nw_apps.command(name="p", help="Add IP exclusion to WARP", hidden=True)(add_ip_exclusion_to_warp)
213
-
214
- return nw_apps