machineconfig 8.14__py3-none-any.whl → 8.50__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 (273) 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 +225 -140
  13. machineconfig/jobs/installer/linux_scripts/docker.sh +6 -9
  14. machineconfig/jobs/installer/package_groups.py +10 -9
  15. machineconfig/jobs/installer/python_scripts/boxes.py +1 -2
  16. machineconfig/jobs/installer/python_scripts/code.py +10 -8
  17. machineconfig/jobs/installer/python_scripts/hx.py +30 -13
  18. machineconfig/jobs/installer/python_scripts/nerfont_windows_helper.py +6 -5
  19. machineconfig/jobs/installer/python_scripts/sysabc.py +25 -19
  20. machineconfig/jobs/installer/python_scripts/yazi.py +33 -17
  21. machineconfig/jobs/scripts/powershell_scripts/cmatrix.ps1 +52 -0
  22. machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +1 -1
  23. machineconfig/jobs/scripts_dynamic/a.py +413 -10
  24. machineconfig/profile/create_links.py +77 -20
  25. machineconfig/profile/create_links_export.py +63 -58
  26. machineconfig/profile/mapper_data.toml +30 -0
  27. machineconfig/profile/mapper_dotfiles.toml +253 -0
  28. machineconfig/scripts/python/agents.py +70 -172
  29. machineconfig/scripts/python/ai/initai.py +3 -1
  30. machineconfig/scripts/python/ai/scripts/__init__.py +1 -0
  31. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +2 -0
  32. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +7 -5
  33. machineconfig/scripts/python/ai/solutions/claude/claude.py +1 -1
  34. machineconfig/scripts/python/ai/solutions/cline/cline.py +1 -1
  35. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +1 -1
  36. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +29 -0
  37. machineconfig/scripts/python/ai/solutions/crush/crush.py +1 -1
  38. machineconfig/scripts/python/ai/solutions/cursor/cursors.py +1 -1
  39. machineconfig/scripts/python/ai/solutions/gemini/gemini.py +1 -1
  40. machineconfig/scripts/python/ai/solutions/gemini/settings.json +3 -0
  41. machineconfig/scripts/python/ai/{solutions → utils}/generic.py +2 -15
  42. machineconfig/scripts/python/ai/utils/vscode_tasks.py +6 -3
  43. machineconfig/scripts/python/cloud.py +58 -11
  44. machineconfig/scripts/python/croshell.py +4 -156
  45. machineconfig/scripts/python/devops.py +57 -40
  46. machineconfig/scripts/python/devops_navigator.py +17 -3
  47. machineconfig/scripts/python/fire_jobs.py +8 -207
  48. machineconfig/scripts/python/ftpx.py +5 -225
  49. machineconfig/scripts/python/graph/cli_graph.json +8743 -0
  50. machineconfig/scripts/python/{env_manager → helper_env}/path_manager_tui.py +2 -2
  51. machineconfig/scripts/python/{env_manager → helpers/helper_env}/env_manager_tui.py +1 -1
  52. machineconfig/scripts/python/helpers/helper_env/path_manager_tui.py +228 -0
  53. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_crush.py +1 -1
  54. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_cursor_agents.py +1 -1
  55. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_gemini.py +1 -1
  56. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_qwen.py +1 -1
  57. machineconfig/scripts/python/helpers/helpers_agents/agents_impl.py +168 -0
  58. machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_help_launch.py +5 -5
  59. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_copy.py +6 -6
  60. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_mount.py +10 -5
  61. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_sync.py +3 -3
  62. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers2.py +1 -1
  63. machineconfig/scripts/python/helpers/helpers_croshell/croshell_impl.py +225 -0
  64. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/scheduler.py +4 -4
  65. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/start_slidev.py +7 -6
  66. machineconfig/scripts/python/helpers/helpers_devops/backup_config.py +149 -0
  67. machineconfig/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +267 -0
  68. machineconfig/scripts/python/helpers/helpers_devops/cli_config.py +98 -0
  69. machineconfig/scripts/python/helpers/helpers_devops/cli_config_dotfile.py +274 -0
  70. machineconfig/scripts/python/helpers/helpers_devops/cli_data.py +76 -0
  71. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_nw.py +52 -72
  72. machineconfig/scripts/python/helpers/helpers_devops/cli_repos.py +274 -0
  73. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_self.py +40 -23
  74. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_share_file.py +44 -30
  75. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_share_server.py +26 -43
  76. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/cli_share_terminal.py +12 -6
  77. machineconfig/scripts/python/helpers/helpers_devops/cli_ssh.py +167 -0
  78. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_status.py +12 -6
  79. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_update_repos.py +1 -1
  80. machineconfig/scripts/python/{interactive.py → helpers/helpers_devops/interactive.py} +68 -52
  81. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/run_script.py +75 -58
  82. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +41 -0
  83. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +48 -0
  84. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_wezterm_theme.py +3 -3
  85. machineconfig/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +233 -0
  86. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_route_helper.py +3 -3
  87. machineconfig/scripts/python/helpers/helpers_msearch/msearch_impl.py +248 -0
  88. machineconfig/scripts/python/{helpers_msearch → helpers/helpers_msearch}/scripts_linux/fzfg +4 -3
  89. machineconfig/scripts/python/helpers/helpers_msearch/scripts_linux/search_with_context.sh +48 -0
  90. machineconfig/scripts/python/{helpers_msearch → helpers/helpers_msearch}/scripts_windows/fzfg.ps1 +1 -1
  91. machineconfig/scripts/python/helpers/helpers_navigator/__init__.py +20 -0
  92. machineconfig/scripts/python/helpers/helpers_navigator/cli_graph_loader.py +234 -0
  93. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/command_builder.py +61 -13
  94. machineconfig/scripts/python/helpers/helpers_navigator/command_detail.py +153 -0
  95. machineconfig/scripts/python/helpers/helpers_navigator/command_tree.py +45 -0
  96. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/data_models.py +18 -11
  97. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/main_app.py +5 -5
  98. machineconfig/scripts/python/helpers/helpers_network/__init__.py +0 -0
  99. machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/address.py +15 -17
  100. machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/address_switch.py +1 -1
  101. machineconfig/scripts/python/helpers/helpers_network/ftpx_impl.py +276 -0
  102. machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/mount_ssh.py +2 -2
  103. machineconfig/scripts/python/helpers/helpers_network/ssh_add_identity.py +73 -0
  104. machineconfig/scripts/python/helpers/helpers_network/ssh_add_ssh_key.py +175 -0
  105. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_linux.py +319 -0
  106. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_windows.py +275 -0
  107. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action.py +3 -3
  108. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action_helper.py +3 -3
  109. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/cloud_repo_sync.py +117 -33
  110. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/grource.py +3 -2
  111. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/record.py +33 -13
  112. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/repo_analyzer_2.py +63 -19
  113. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/update.py +0 -6
  114. machineconfig/scripts/python/helpers/helpers_search/script_help.py +81 -0
  115. machineconfig/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
  116. machineconfig/scripts/python/helpers/helpers_sessions/sessions_impl.py +186 -0
  117. machineconfig/scripts/python/{helpers_sessions → helpers/helpers_sessions}/sessions_multiprocess.py +1 -1
  118. machineconfig/scripts/python/helpers/helpers_terminal/__init__.py +0 -0
  119. machineconfig/scripts/python/helpers/helpers_terminal/terminal_impl.py +96 -0
  120. machineconfig/scripts/python/{helpers_utils → helpers/helpers_utils}/download.py +1 -1
  121. machineconfig/scripts/python/{helpers_utils → helpers/helpers_utils}/python.py +47 -26
  122. machineconfig/scripts/python/helpers/helpers_utils/specs.py +246 -0
  123. machineconfig/scripts/python/mcfg_entry.py +133 -48
  124. machineconfig/scripts/python/msearch.py +15 -61
  125. machineconfig/scripts/python/sessions.py +59 -194
  126. machineconfig/scripts/python/terminal.py +18 -96
  127. machineconfig/scripts/python/utils.py +101 -20
  128. machineconfig/settings/atuin/config.toml +294 -0
  129. machineconfig/settings/atuin/themes/catppuccin-mocha-mauve.toml +12 -0
  130. machineconfig/settings/linters/.ruff.toml +1 -0
  131. machineconfig/settings/mprocs/windows/mprocs.yaml +2 -2
  132. machineconfig/settings/shells/bash/init.sh +6 -3
  133. machineconfig/settings/shells/pwsh/init.ps1 +69 -1
  134. machineconfig/settings/shells/pwsh/search_pwsh_history.ps1 +99 -0
  135. machineconfig/settings/shells/wezterm/wezterm.lua +4 -1
  136. machineconfig/settings/shells/wt/settings.json +20 -7
  137. machineconfig/settings/shells/zsh/init.sh +25 -4
  138. machineconfig/settings/television/cable_unix/bash-history.toml +1 -1
  139. machineconfig/settings/television/cable_windows/pwsh-history.toml +1 -1
  140. machineconfig/settings/tv/config.toml +234 -0
  141. machineconfig/settings/tv/themes/catppuccin-mocha-sky.toml +22 -0
  142. machineconfig/settings/wsl/.wslconfig +5 -30
  143. machineconfig/settings/yazi/yazi_linux.toml +18 -8
  144. machineconfig/settings/zellij/layouts/st.kdl +2 -2
  145. machineconfig/settings/zellij/layouts/st2.kdl +1 -1
  146. machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
  147. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +3 -0
  148. machineconfig/setup_mac/__init__.py +0 -2
  149. machineconfig/setup_windows/__init__.py +0 -1
  150. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +14 -13
  151. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +4 -3
  152. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +3 -3
  153. machineconfig/type_hinting/sql/__init__.py +1 -0
  154. machineconfig/type_hinting/sql/base.py +216 -0
  155. machineconfig/type_hinting/sql/core_schema.py +64 -0
  156. machineconfig/type_hinting/sql/core_schema_typeddict.py +41 -0
  157. machineconfig/type_hinting/sql/typeddict_codegen.py +222 -0
  158. machineconfig/type_hinting/typedict/__init__.py +1 -0
  159. machineconfig/type_hinting/typedict/ast_utils.py +130 -0
  160. machineconfig/type_hinting/typedict/generator_helpers.py +319 -0
  161. machineconfig/type_hinting/typedict/generators.py +231 -0
  162. machineconfig/type_hinting/typedict/polars_schema.py +24 -0
  163. machineconfig/type_hinting/typedict/polars_schema_typeddict.py +63 -0
  164. machineconfig/utils/accessories.py +24 -0
  165. machineconfig/utils/code.py +41 -13
  166. machineconfig/utils/files/ascii_art.py +10 -14
  167. machineconfig/utils/files/headers.py +3 -5
  168. machineconfig/utils/files/read.py +8 -1
  169. machineconfig/utils/installer_utils/github_release_bulk.py +11 -91
  170. machineconfig/utils/installer_utils/github_release_scraper.py +99 -0
  171. machineconfig/utils/installer_utils/install_from_url.py +1 -1
  172. machineconfig/utils/installer_utils/installer_class.py +12 -4
  173. machineconfig/utils/installer_utils/installer_cli.py +1 -15
  174. machineconfig/utils/installer_utils/installer_helper.py +2 -2
  175. machineconfig/utils/installer_utils/installer_locator_utils.py +13 -13
  176. machineconfig/utils/installer_utils/installer_runner.py +4 -4
  177. machineconfig/utils/io.py +25 -8
  178. machineconfig/utils/meta.py +6 -4
  179. machineconfig/utils/options.py +49 -19
  180. machineconfig/utils/options_utils/__init__.py +0 -0
  181. machineconfig/utils/options_utils/options_tv_linux.py +211 -0
  182. machineconfig/utils/options_utils/options_tv_windows.py +88 -0
  183. machineconfig/utils/options_utils/tv_options.py +37 -0
  184. machineconfig/utils/path_extended.py +6 -6
  185. machineconfig/utils/scheduler.py +8 -2
  186. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  187. machineconfig/utils/source_of_truth.py +6 -1
  188. machineconfig/utils/ssh.py +69 -18
  189. machineconfig/utils/ssh_utils/abc.py +1 -1
  190. machineconfig/utils/ssh_utils/copy_from_here.py +17 -12
  191. machineconfig/utils/ssh_utils/utils.py +21 -5
  192. machineconfig/utils/ssh_utils/wsl.py +107 -170
  193. machineconfig/utils/ssh_utils/wsl_helper.py +217 -0
  194. machineconfig/utils/upgrade_packages.py +4 -8
  195. {machineconfig-8.14.dist-info → machineconfig-8.50.dist-info}/METADATA +29 -22
  196. {machineconfig-8.14.dist-info → machineconfig-8.50.dist-info}/RECORD +251 -211
  197. machineconfig/jobs/installer/check_installations.py +0 -248
  198. machineconfig/profile/backup.toml +0 -49
  199. machineconfig/profile/mapper.toml +0 -263
  200. machineconfig/scripts/python/helpers_devops/cli_config.py +0 -105
  201. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -89
  202. machineconfig/scripts/python/helpers_devops/cli_data.py +0 -25
  203. machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -208
  204. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -80
  205. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -3
  206. machineconfig/scripts/python/helpers_navigator/__init__.py +0 -20
  207. machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -44
  208. machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -620
  209. machineconfig/scripts/python/helpers_network/ssh_add_identity.py +0 -116
  210. machineconfig/scripts/python/helpers_network/ssh_add_ssh_key.py +0 -153
  211. machineconfig/scripts/python/helpers_network/ssh_debug_linux.py +0 -391
  212. machineconfig/scripts/python/helpers_network/ssh_debug_windows.py +0 -338
  213. machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -77
  214. machineconfig/setup_mac/ssh/openssh_setup.sh +0 -114
  215. machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -29
  216. machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -37
  217. machineconfig/utils/options_tv.py +0 -119
  218. machineconfig/utils/tst.py +0 -20
  219. /machineconfig/{scripts/python/helpers_agents → jobs/installer/checks}/__init__.py +0 -0
  220. /machineconfig/scripts/python/ai/{solutions/_shared.py → utils/shared.py} +0 -0
  221. /machineconfig/scripts/python/{helpers_agents/agentic_frameworks → graph}/__init__.py +0 -0
  222. /machineconfig/scripts/python/{helpers_cloud → helpers}/__init__.py +0 -0
  223. /machineconfig/scripts/python/{env_manager → helpers/helper_env}/__init__.py +0 -0
  224. /machineconfig/scripts/python/{env_manager → helpers/helper_env}/path_manager_backend.py +0 -0
  225. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_agents}/__init__.py +0 -0
  226. /machineconfig/scripts/python/{helpers_devops → helpers/helpers_agents/agentic_frameworks}/__init__.py +0 -0
  227. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/agentic_frameworks/fire_crush.json +0 -0
  228. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_help_search.py +0 -0
  229. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_helper_types.py +0 -0
  230. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/fire_agents_load_balancer.py +0 -0
  231. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/privacy/configs/aichat/config.yaml +0 -0
  232. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/privacy/configs/aider/.aider.conf.yml +0 -0
  233. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/privacy/configs/copilot/config.yml +0 -0
  234. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/privacy/configs/crush/crush.json +0 -0
  235. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/privacy/configs/gemini/settings.json +0 -0
  236. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/privacy/privacy.py +0 -0
  237. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/templates/prompt.txt +0 -0
  238. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/templates/template.ps1 +0 -0
  239. /machineconfig/scripts/python/{helpers_agents → helpers/helpers_agents}/templates/template.sh +0 -0
  240. /machineconfig/scripts/python/{helpers_devops/themes → helpers/helpers_cloud}/__init__.py +0 -0
  241. /machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_helpers.py +0 -0
  242. /machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers5.py +0 -0
  243. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_croshell}/__init__.py +0 -0
  244. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/crosh.py +0 -0
  245. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/pomodoro.py +0 -0
  246. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer.py +0 -0
  247. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer_template.py +0 -0
  248. /machineconfig/scripts/python/{helpers_network → helpers/helpers_devops}/__init__.py +0 -0
  249. /machineconfig/scripts/python/{helpers_sessions → helpers/helpers_devops/themes}/__init__.py +0 -0
  250. /machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_pwsh_theme.ps1 +0 -0
  251. /machineconfig/scripts/python/{helpers_devops/themes/choose_starship_theme.ps1 → helpers/helpers_fire_command/__init__.py} +0 -0
  252. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/cloud_manager.py +0 -0
  253. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/f.py +0 -0
  254. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/file_wrangler.py +0 -0
  255. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_args_helper.py +0 -0
  256. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_streamlit_helper.py +0 -0
  257. /machineconfig/scripts/python/{helpers_msearch → helpers/helpers_msearch}/__init__.py +0 -0
  258. /machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/search_bar.py +0 -0
  259. /machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/mount_nfs.py +0 -0
  260. /machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/mount_nw_drive.py +0 -0
  261. /machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/onetimeshare.py +0 -0
  262. /machineconfig/scripts/python/{helpers_network → helpers/helpers_network}/wifi_conn.py +0 -0
  263. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/clone.py +0 -0
  264. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/repo_analyzer_1.py +0 -0
  265. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/sync.py +0 -0
  266. /machineconfig/scripts/python/helpers/{ast_search.py → helpers_search/ast_search.py} +0 -0
  267. /machineconfig/scripts/python/helpers/{qr_code.py → helpers_search/qr_code.py} +0 -0
  268. /machineconfig/scripts/python/helpers/{repo_rag.py → helpers_search/repo_rag.py} +0 -0
  269. /machineconfig/scripts/python/helpers/{symantic_search.py → helpers_search/symantic_search.py} +0 -0
  270. /machineconfig/scripts/python/{helpers_utils → helpers/helpers_utils}/pdf.py +0 -0
  271. {machineconfig-8.14.dist-info → machineconfig-8.50.dist-info}/WHEEL +0 -0
  272. {machineconfig-8.14.dist-info → machineconfig-8.50.dist-info}/entry_points.txt +0 -0
  273. {machineconfig-8.14.dist-info → machineconfig-8.50.dist-info}/top_level.txt +0 -0
@@ -1,248 +0,0 @@
1
-
2
- import platform
3
- from machineconfig.utils.source_of_truth import CONFIG_ROOT
4
-
5
-
6
- APP_SUMMARY_PATH = CONFIG_ROOT.joinpath(f"profile/records/{platform.system().lower()}/apps_summary_report.csv")
7
- # CLOUD: str = "gdw" # Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
8
- # # my onedrive doesn't allow sharing.
9
-
10
-
11
- # def scan(path: P, pct: float = 0.0):
12
- # import vt # vt-py
13
- # client = vt.Client(PathExtended.home().joinpath("dotfiles/creds/tokens/virustotal").read_text(encoding="utf-8").split("\n")[0])
14
- # console = Console()
15
- # console.rule(f"Scanning {path}. {pct:.2f}% done")
16
- # if path.is_dir():
17
- # print(f"📁 Skipping {path} as it is a directory.")
18
- # return None
19
- # with open(str(path), "rb") as f:
20
- # analysis = client.scan_file(f)
21
- # repeat_counter: int = 0
22
- # while True:
23
- # with console.status(f"waiting for scan of {path} ... "):
24
- # try:
25
- # anal = client.get_object("/analyses/{}", analysis.id)
26
- # if anal.status == "completed": break
27
- # except Exception as ex: # type: ignore
28
- # repeat_counter += 1
29
- # if repeat_counter > 2:
30
- # raise ValueError(f"❌ Error in scanning {path}") from ex
31
- # print("⚠️ Error in scanning, trying again...")
32
- # time.sleep(30)
33
-
34
- # # Convert results to list of dictionaries
35
- # results_data = list(anal.results.values())
36
- # malicious = []
37
- # for result_item in results_data:
38
- # # Convert result item to dictionary if it has attributes
39
- # if hasattr(result_item, '__dict__'):
40
- # result_dict = result_item.__dict__
41
- # else:
42
- # # Assume it already has the necessary attributes
43
- # result_dict = {
44
- # 'result': getattr(result_item, 'result', None),
45
- # 'category': getattr(result_item, 'category', 'unknown')
46
- # }
47
-
48
- # if result_dict.get('result') is None and result_dict.get('category') in ["undetected", "type-unsupported", "failure", "timeout", "confirmed-timeout"]:
49
- # continue
50
- # else:
51
- # pprint(result_dict, f"🔍 Found Category {result_dict.get('category')}")
52
- # malicious.append(result_item)
53
-
54
- # positive_pct: float = round(number=len(malicious) / len(results_data) * 100, ndigits=1)
55
- # print(f"""
56
- # {'=' * 50}
57
- # 🔬 SCAN RESULTS | Positive ratio: {positive_pct:.1f}%
58
- # {'=' * 50}
59
- # """)
60
- # return positive_pct, results_data
61
-
62
-
63
- # def main() -> None:
64
- # # Convert potential custom List types to plain Python lists
65
- # tmp_apps = get_installed_cli_apps()
66
- # apps_paths_tmp: list[PathExtended]
67
- # if hasattr(tmp_apps, "list"):
68
- # apps_paths_tmp = list(tmp_apps.list)
69
- # else:
70
- # try:
71
- # apps_paths_tmp = list(tmp_apps)
72
- # except TypeError:
73
- # apps_paths_tmp = [tmp_apps]
74
-
75
- # tmp_versions = INSTALL_VERSION_ROOT.search()
76
- # versions_files_paths: list[PathExtended]
77
- # if hasattr(tmp_versions, "list"):
78
- # versions_files_paths = list(tmp_versions.list)
79
- # else:
80
- # try:
81
- # versions_files_paths = list(tmp_versions)
82
- # except TypeError:
83
- # versions_files_paths = [tmp_versions]
84
-
85
- # app_versions: list[Optional[str]] = []
86
- # apps_paths_raw: list[PathExtended] = []
87
- # for an_app in apps_paths_tmp:
88
- # version_path = [x for x in versions_files_paths if x.stem == an_app.stem]
89
- # if len(version_path) == 1:
90
- # app_versions.append(version_path[0].read_text(encoding="utf-8"))
91
- # apps_paths_raw.append(an_app)
92
- # # if an_app.stem in versions_files_paths.stem:
93
- # # else:
94
- # # print(f"🤔 Cloud not find a documented version for installation of {an_app.stem}, trying to get it from the app itself.")
95
- # # tmp = Terminal().run(f"{an_app.stem} --version", shell="powershell").capture().op_if_successfull_or_default(strict_err=False, strict_returcode=False)
96
- # # if tmp is not None: tmp = tmp.split("\n")[0]
97
- # # print(f"➡️ Found version `{tmp}` for {an_app.stem}.")
98
- # # app_versions.append(None)
99
- # print(f"""
100
- # {'=' * 150}
101
- # 🔍 TOOL CHECK | Checking tools (#{len(apps_paths_tmp)}) collected from `{INSTALL_VERSION_ROOT}`
102
- # {'=' * 150}
103
- # """)
104
- # for path_item in apps_paths_raw:
105
- # print(path_item)
106
- # positive_pct: list[Optional[float]] = []
107
- # scan_time: list[str] = []
108
- # detailed_results: list[dict[str, Optional[list[Any]]]] = []
109
-
110
- # for idx, app in enumerate(apps_paths_raw):
111
- # try: res = scan(path=app, pct=idx / len(apps_paths_raw) * 100)
112
- # except ValueError as ve:
113
- # print(f"❌ ERROR | {ve}")
114
- # res = None
115
- # if res is None:
116
- # positive_pct.append(None)
117
- # detailed_results.append({app.stem: None})
118
- # else:
119
- # ppct, results_data = res
120
- # positive_pct.append(ppct)
121
- # detailed_results.append({app.stem: results_data})
122
- # scan_time.append(datetime.now().strftime("%Y-%m-%d %H:%M"))
123
-
124
- # # Create list of dictionaries instead of DataFrame
125
- # app_data = []
126
- # for i, app_path in enumerate(apps_paths_raw):
127
- # app_data.append({
128
- # "app_name": app_path.stem,
129
- # "version": app_versions[i],
130
- # "positive_pct": positive_pct[i],
131
- # "scan_time": scan_time[i],
132
- # "app_path": app_path.collapseuser(strict=False).as_posix()
133
- # })
134
-
135
- # # Add app URLs
136
- # for i, app_info in enumerate(tqdm(app_data, desc="Uploading apps")):
137
- # apps_safe_url = upload(PathExtended(app_info["app_path"]).expanduser())
138
- # app_info["app_url"] = apps_safe_url.as_posix() if (apps_safe_url is not None and type(apps_safe_url) is P) else str(apps_safe_url) if apps_safe_url is not None else ""
139
-
140
- # # Write to CSV using standard library
141
- # csv_path = APP_SUMMARY_PATH.with_suffix(".csv")
142
- # csv_path.parent.mkdir(parents=True, exist_ok=True)
143
- # with open(csv_path, 'w', newline='', encoding='utf-8') as csvfile:
144
- # if app_data:
145
- # fieldnames = app_data[0].keys()
146
- # writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
147
- # writer.writeheader()
148
- # writer.writerows(app_data)
149
-
150
- # # Create markdown table
151
- # def format_app_table_markdown(data: list[dict[str, Any]]) -> str:
152
- # if not data:
153
- # return ""
154
- # keys = list(data[0].keys())
155
- # header = "|" + "|".join(f" {key} " for key in keys) + "|"
156
- # separator = "|" + "|".join(" --- " for _ in keys) + "|"
157
- # rows = []
158
- # for row in data:
159
- # row_values = [f" {str(row.get(key, ''))} " for key in keys]
160
- # rows.append("|" + "|".join(row_values) + "|")
161
- # return "\n".join([header, separator] + rows)
162
-
163
- # markdown_content = format_app_table_markdown(app_data)
164
- # APP_SUMMARY_PATH.with_suffix(".md").write_text(markdown_content, encoding="utf-8")
165
-
166
- # print(f"""
167
- # {'=' * 150}
168
- # 📊 SAFETY REPORT | Summary of app scanning results
169
- # {'=' * 150}
170
- # """)
171
- # print(markdown_content)
172
-
173
-
174
- # def upload(path: PathExtended):
175
- # import call_function_with_timeout
176
- # set_time_out = call_function_with_timeout.SetTimeout
177
- # func_with_timeout = set_time_out(lambda: path.to_cloud(CLOUD, rel2home=True, share=True, os_specific=True), timeout=180)
178
- # is_done, _is_timeout, _erro_message, results = func_with_timeout()
179
- # if is_done: return results
180
- # else: return None
181
-
182
-
183
- # class precheckedPackages:
184
- # def __init__(self):
185
- # # Read CSV using standard library
186
- # self.data = []
187
- # if APP_SUMMARY_PATH.exists():
188
- # with open(APP_SUMMARY_PATH, 'r', encoding='utf-8') as csvfile:
189
- # reader = csv.DictReader(csvfile)
190
- # self.data = list(reader)
191
-
192
- # @staticmethod
193
- # def download_google_links(url: str):
194
- # # if "drive.google.com" in str(url): url = str(url).replace("open?", "uc?")
195
- # # else: raise NotImplementedError("Only google drive is supported for now.")
196
- # # return PathExtended(url).download(name=name)
197
- # gdrive_id = PathExtended(url).parts[-1].split("id=")[1]
198
- # result = PathExtended(gdown.download(id=gdrive_id)).absolute()
199
- # return result
200
-
201
- # @staticmethod
202
- # def install_cli_apps(app_url: str):
203
- # try:
204
- # exe = precheckedPackages.download_google_links(app_url)
205
- # except Exception as ex: # type: ignore
206
- # print(f"❌ ERROR | Failed downloading {app_url}: {ex}")
207
- # return None
208
- # if platform.system().lower() in ["linux", "darwin"]:
209
- # Terminal().run(f"chmod +x {exe}")
210
- # Terminal().run(f"mv {exe} /usr/local/bin/")
211
- # elif platform.system().lower() == "windows":
212
- # exe.move(folder=PathExtended.home().joinpath("AppData/Local/Microsoft/WindowsApps"), overwrite=True)
213
- # return True
214
-
215
- # def download_safe_apps(self, name: str="essentials"):
216
- # # if platform.system().lower() == "windows":
217
- # # from machineconfig.jobs.python.python_windows_installers_all import get_cli_py_installers
218
- # # cli_installers = get_cli_py_installers()
219
- # # elif platform.system().lower() == "linux":
220
- # # from machineconfig.jobs.python.python_linux_installers_all import get_cli_py_installers
221
- # # cli_installers = get_cli_py_installers()
222
- # # else: raise NotImplementedError(f"Platform {platform.system().lower()} is not supported yet.")
223
-
224
- # print(f"""
225
- # {'=' * 150}
226
- # 📥 DOWNLOAD | Downloading {len(self.data)} apps...
227
- # {'=' * 150}
228
- # """)
229
- # print(self.data)
230
- # app_urls = [item['app_url'] for item in self.data]
231
- # from concurrent.futures import ThreadPoolExecutor
232
- # with ThreadPoolExecutor(max_workers=20) as executor:
233
- # _res = list(executor.map(precheckedPackages.install_cli_apps, app_urls))
234
- # else:
235
- # app_items = [item for item in self.data if item['app_name'] == name]
236
- # if not app_items:
237
- # raise ValueError(f"App '{name}' not found in data")
238
- # app_url = app_items[0]['app_url']
239
- # _res = precheckedPackages.install_cli_apps(app_url=app_url)
240
-
241
- # # print("\n" * 3)
242
- # # for item_flag, item_name in zip(res, self.df["app_name"]):
243
- # # if item_flag: print(f"✅ {item_name} is installed. 😁")
244
- # # else: print(f"❌ {item_name} failed to install for reasons explained in the log above, try manually.")
245
-
246
-
247
- # if __name__ == '__main__':
248
- # pass
@@ -1,49 +0,0 @@
1
-
2
- # locations to be backed up to the cloud.
3
-
4
- [thunderbird_windows]
5
- path = '~/AppData/Roaming/Thunderbird/Profiles'
6
- encrypt = 'True'
7
- zip = 'True'
8
- rel2home = 'True'
9
- os_specific = 'True'
10
-
11
-
12
- [thunderbird_linux]
13
- path = '~/.thunderbird'
14
- encrypt = 'True'
15
- zip = 'True'
16
- rel2home = 'True'
17
- os_specific = 'True'
18
-
19
-
20
- [zoxide_windows]
21
- path = '~/AppData/Local/zoxide/db.zo'
22
- encrypt = 'False'
23
- zip = 'False'
24
- rel2home = 'True'
25
- os_specific = 'True'
26
-
27
-
28
- [zoxide_linux]
29
- path = '~/.local/share/zoxide/db.zo'
30
- encrypt = 'False'
31
- zip = 'False'
32
- rel2home = 'True'
33
- os_specific = 'True'
34
-
35
-
36
- #[dotfiles]
37
- # path = '~/dotfiles'
38
- # encrypt = 'True'
39
- # zip = 'True'
40
- # rel2home = 'True'
41
- # os_specific = 'True'
42
-
43
-
44
- [ipython]
45
- path = '~/.ipython'
46
- encrypt = 'True'
47
- zip = 'True'
48
- rel2home = 'True'
49
- os_specific = 'False'
@@ -1,263 +0,0 @@
1
-
2
-
3
- # =================== PRIVATE ================================
4
-
5
- [git]
6
- gitconfig = {this = '~/.gitconfig', to_this = '~/dotfiles/creds/git/.gitconfig'}
7
- gitcred = {this = '~/.git-credentials', to_this = '~/dotfiles/creds/git/.git-credentials'}
8
-
9
- [ssh]
10
- keys = {this = '~/.ssh', to_this = '~/dotfiles/creds/.ssh', contents = true}
11
-
12
- [pypi]
13
- creds = {this = '~/.pypirc', to_this = '~/dotfiles/creds/msc/.pypirc'}
14
-
15
- [rclone_linux]
16
- config = {this = '~/.config/rclone/rclone.conf', to_this = '~/dotfiles/creds/rclone/rclone.conf'}
17
-
18
- [rclone_windows]
19
- config = {this = '~/AppData/Roaming/rclone/rclone.conf', to_this = '~/dotfiles/creds/rclone/rclone.conf'}
20
-
21
- [cloudflare]
22
- config = {this = '~/.cloudflared', to_this = '~/dotfiles/creds/cloudflare/.cloudflared'}
23
-
24
- [ngrok_linux]
25
- config = {this = '~/.config/ngrok/ngrok.yml', to_this = '~/dotfiles/creds/tokens/ngrok.yml'}
26
-
27
- [ngrok_windows]
28
- config = {this = '~/AppData/Local/ngrok/ngrok.yml', to_this = '~/dotfiles/creds/tokens/ngrok.yml'}
29
-
30
- [m365]
31
- config1 = {this = '~/.cli-m365-msal.json', to_this = '~/dotfiles/creds/tokens/.cli-m365-msal.json'}
32
- config2 = {this = '~/.cli-m365-all-connections.json', to_this = '~/dotfiles/creds/tokens/.cli-m365-all-connections.json'}
33
- config3 = {this = '~/.cli-m365-connection.json', to_this = '~/dotfiles/creds/tokens/.cli-m365-connection.json'}
34
- # config2 = {this = '~/.cli-m365-tokens.json', to_this = '~/dotfiles/creds/tokens/.cli-m365-tokens.json'}
35
-
36
- [remmina]
37
- data = {this = '~/.var/app/org.remmina.Remmina/data/remmina', to_this = '~/dotfiles/creds/RDP/remmina/data/remmina'}
38
-
39
- [webapp_linux]
40
- brave = {this = '~/.local/share/applications', to_this = '~/dotfiles/config/webapps/linux/brave', contents = true}
41
-
42
- # [startup_windows]
43
- # startup = {this = '~/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup', to_this = '~/dotfiles/scripts/windows_startup', contents = true}
44
-
45
- # [aws]
46
- # config = {this = '~/.aws/config', to_this = '~/dotfiles/aws/.aws', contents = true}
47
-
48
- [wt_windows]
49
- settings = { this = '~/AppData/Local/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/LocalState/settings.json', to_this = 'CONFIG_ROOT/settings/shells/wt/settings.json' }
50
-
51
-
52
- # =================== LLMs ============================
53
-
54
- [chatgpt]
55
- config = { this = '~/.config/chatgpt/config.json', to_this = '~/dotfiles/creds/llm/chatgpt_cli/config.json' }
56
-
57
- [mods]
58
- config = {this = '~/.config/mods/mods.yml', to_this = '~/dotfiles/creds/llm/mods_cli/mods.yml'}
59
-
60
- [github_cli_token]
61
- token = {this = '~/.copilot-cli-access-token', to_this = '~/dotfiles/creds/llm/github_cli/.copilot-cli-access-token'}
62
-
63
- [aider]
64
- config = {this = '~/.aider.conf.yml', to_this = '~/dotfiles/creds/llm/aider/.aider.conf.yml'}
65
-
66
- [marvin]
67
- config = {this = '~/.marvin/.env', to_this = '~/dotfiles/creds/llm/marvin/.env'}
68
- threads = {this = '~/.marvin/cli/threads/default.json', to_this = '~/dotfiles/creds/llm/marvin/threads/default.json'}
69
-
70
- [docker]
71
- config = {this = '~/.docker/config.json', to_this = '~/dotfiles/creds/docker/config.json'}
72
-
73
-
74
- # =========================== PUBLIC ======================================
75
-
76
- [marimo]
77
- config = {this = '~/.config/marimo/marimo.toml', to_this = 'CONFIG_ROOT/settings/marimo/marimo.toml'}
78
-
79
- [presenterm]
80
- config = {this = '~/.config/presenterm/config.yaml', to_this = 'CONFIG_ROOT/settings/presenterm/config.yaml'}
81
-
82
- [keras]
83
- config = {this = '~/.keras/keras.json', to_this = 'CONFIG_ROOT/settings/keras/keras.json'}
84
-
85
- [streamlit]
86
- config = {this = '~/.streamlit/config.toml', to_this = 'CONFIG_ROOT/settings/streamlit/config.toml'}
87
-
88
-
89
- [procs]
90
- config = {this = '~/.procs.toml', to_this = 'CONFIG_ROOT/settings/procs/.procs.toml'}
91
- config_again = {this = '~/.config/procs/config.toml', to_this = 'CONFIG_ROOT/settings/procs/.procs.toml'}
92
-
93
- [rofi_linux]
94
- config = {this = '~/.config/rofi/config.rasi', to_this = 'CONFIG_ROOT/settings/rofi/config.rasi'}
95
-
96
- [yazi_windows]
97
- yazi = {this = '~/AppData/Roaming/yazi/config/yazi.toml', to_this = 'CONFIG_ROOT/settings/yazi/yazi_windows.toml'}
98
- keymap = {this = '~/AppData/Roaming/yazi/config/keymap.toml', to_this = 'CONFIG_ROOT/settings/yazi/keymap_windows.toml'}
99
- theme = {this = '~/AppData/Roaming/yazi/config/theme.toml', to_this = 'CONFIG_ROOT/settings/yazi/theme.toml'}
100
- init = {this = '~/AppData/Roaming/yazi/config/init.lua', to_this = 'CONFIG_ROOT/settings/yazi/init.lua'}
101
-
102
- [television_linux]
103
- cable = {this = '~/.config/television/cable', to_this = 'CONFIG_ROOT/settings/television/cable_unix', contents = true}
104
-
105
- [television_windows]
106
- cable = {this = '~/AppData/Local/television/config/cable', to_this = 'CONFIG_ROOT/settings/television/cable_windows', contents = true}
107
-
108
-
109
- [yazi_linux]
110
- yazi = {this = '~/.config/yazi/yazi.toml', to_this = 'CONFIG_ROOT/settings/yazi/yazi_linux.toml'}
111
- keymap = {this = '~/.config/yazi/keymap.toml', to_this = 'CONFIG_ROOT/settings/yazi/keymap_linux.toml'}
112
- theme = {this = '~/.config/yazi/theme.toml', to_this = 'CONFIG_ROOT/settings/yazi/theme.toml'}
113
- init = {this = '~/.config/yazi/init.lua', to_this = 'CONFIG_ROOT/settings/yazi/init.lua'}
114
-
115
- [lf_windows]
116
- config = {this = '~/AppData/Local/lf/lfrc', to_this = 'CONFIG_ROOT/settings/lf/windows/lfrc'}
117
- colors = {this = '~/AppData/Local/lf/colors', to_this = 'CONFIG_ROOT/settings/lf/windows/colors'}
118
- icons = {this = '~/AppData/Local/lf/icons', to_this = 'CONFIG_ROOT/settings/lf/windows/icons'}
119
-
120
- [lf_linux]
121
- colors = {this = '~/.config/lf/colors', to_this = 'CONFIG_ROOT/settings/lf/linux/colors'}
122
- config = {this = '~/.config/lf/lfrc', to_this = 'CONFIG_ROOT/settings/lf/linux/lfrc'}
123
- icons = {this = '~/.config/lf/icons', to_this = 'CONFIG_ROOT/settings/lf/linux/icons'}
124
-
125
- [broot]
126
- config = {this = '~/.config/broot/conf.toml', to_this = 'CONFIG_ROOT/settings/broot/conf.toml'}
127
-
128
- [pistol_linux]
129
- config = {this = '~/.config/pistol/pistol.conf', to_this = 'CONFIG_ROOT/settings/pistol/pistol.conf'}
130
-
131
- [glow]
132
- config = {this = '~/.config/glow/glow.yml', to_this = 'CONFIG_ROOT/settings/glow/glow.yml'}
133
-
134
- [gromit_linux]
135
- config = {this = '~/.var/app/net.christianbeier.Gromit-MPX/config/gromit-mpx.cfg', to_this = 'CONFIG_ROOT/settings/gromit-mpx/gromit-mpx.cfg', copy = true}
136
-
137
- # zoxide can't read symlink files see: https://github.com/ajeetdsouza/zoxide/issues?q=is%3Aissue+is%3Aopen+symlink
138
- # [zoxide_windows]
139
- # database = {this = '~/AppData/Local/zoxide/db.zo', to_this = '~/dotfiles/settings/zoxide_windows/db.zo'}
140
-
141
- # [zoxide_linux]
142
- # database = {this = '~/.local/share/zoxide/db.zo', to_this = '~/dotfiles/settings/zoxide_linux/db.zo'}
143
-
144
- #[broot_windows]
145
- #config = { this = '~/AppData/Roaming/dystroy/config', to_this = 'CONFIG_ROOT/settings/broot/config' }
146
-
147
- [starship]
148
- config = {this = '~/.config/starship.toml', to_this = 'CONFIG_ROOT/settings/shells/starship/starship.toml'}
149
-
150
-
151
- [kanata]
152
- config = {this = '~/.config/kanata/kanata.kbd', to_this = 'CONFIG_ROOT/settings/keyboard/kanata/kanata.kbd'}
153
-
154
- [espanso]
155
- config = {this = '~/.config/espanso/config/default.yml', to_this = 'CONFIG_ROOT/settings/keyboard/espanso/config/default.yml'}
156
- match = {this = '~/.config/espanso/match/base.yml', to_this = 'CONFIG_ROOT/settings/keyboard/espanso/match/base.yml', copy = true}
157
-
158
-
159
- [pudb]
160
- config = {this = '~/.config/pudb/pudb.cfg', to_this = 'CONFIG_ROOT/settings/pudb/pudb.cfg'}
161
-
162
-
163
- # ============================= shells profiles ==================================
164
-
165
- # [powershell_windows]
166
- # CurrentUserCurrentHost = {this = '~/Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1', to_this = '~/dotfiles/shells/windows_powershell/CurrentUserCurrentHost/Microsoft.PowerShell_profile.ps1'}
167
- # CurrentUserAllHosts = {this = '~/Documents\WindowsPowerShell\profile.ps1', to_this = '~/dotfiles/shells/windows_powershell/CurrentUserAllHosts/profile.ps1'}
168
- # AllUsersCurrentHost = {this = 'C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1', to_this = '~/dotfiles/shells/powershell/AllUsersCurrentHost/Microsoft.PowerShell_profile.ps1'}
169
- # AllUsersAllHosts = {this = 'C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1', to_this = '~/dotfiles/shells/windows_powershell/AllUsersAllHosts/profile.ps1'}
170
-
171
- # [pwsh_windows]
172
- # CurrentUserCurrentHost = {this = '~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
173
- # CurrentUserAllHosts = {this = '~/Documents/PowerShell/profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/profile.ps1'}
174
- # AllUsersCurrentHost = {this = 'C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
175
- # AllUsersAllHosts = {this = 'C:\Program Files\PowerShell\7\profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
176
-
177
- [nushell_windows]
178
- config = {this = '~/AppData/Roaming/nushell/config.nu', to_this = 'CONFIG_ROOT/settings/shells/nushell/config.nu'}
179
- env = {this = '~/AppData/Roaming/nushell/env.nu', to_this = 'CONFIG_ROOT/settings/shells/nushell/env.nu'}
180
-
181
- [nushell_linux]
182
- config = {this = '~/.config/nushell/config.nu', to_this = 'CONFIG_ROOT/settings/shells/nushell/config.nu'}
183
- env = {this = '~/.config/nushell/env.nu', to_this = 'CONFIG_ROOT/settings/shells/nushell/env.nu'}
184
-
185
- [kitty_linux]
186
- config = {this = '~/.config/kitty/kitty.conf', to_this = 'CONFIG_ROOT/settings/shells/kitty/kitty.conf'}
187
-
188
- [alacritty_linux]
189
- config = {this = '~/.config/alacritty/alacritty.toml', to_this = 'CONFIG_ROOT/settings/shells/alacritty/alacritty.toml'}
190
- config_yaml = {this = '~/.config/alacritty/alacritty.yml', to_this = 'CONFIG_ROOT/settings/shells/alacritty/alacritty.yml'}
191
-
192
- [alacritty_windows]
193
- config = {this = '~/AppData/Roaming/alacritty/alacritty.toml', to_this = 'CONFIG_ROOT/settings/shells/alacritty/alacritty.toml'}
194
-
195
- [hyper_terminal]
196
- config = {this = '~/.hyper.js', to_this = 'CONFIG_ROOT/settings/shells/hyper/.hyper.js'}
197
-
198
- [wezterminal]
199
- config = {this = '~/.config/wezterm/wezterm.lua', to_this = 'CONFIG_ROOT/settings/shells/wezterm/wezterm.lua'}
200
-
201
- [vtm_windows]
202
- settings = {this = '~/.config/vtm/settings.xml', to_this = 'CONFIG_ROOT/settings/shells/vtm/settings.xml'}
203
-
204
- # [ipython_default_config]
205
- # config = {this = '~/.ipython/profile_default/ipython_config.py', to_this = 'CONFIG_ROOT/settings/shells/ipy/profiles/default/ipython_config.py'}
206
- # play_extension = {this = '~/.ipython/profile_default/startup/playext.py', to_this = 'CONFIG_ROOT/settings/shells/ipy/profiles/default/startup/playext.py'}
207
-
208
- [mprocs_windows]
209
- config = {this = '~/mprocs.yaml', to_this = 'CONFIG_ROOT/settings/mprocs/windows/mprocs.yaml'}
210
-
211
- # [tmux_linux]
212
- # config = {this = '~/.tmux.conf', to_this = 'CONFIG_ROOT/settings/tmux/.tmux.conf'}
213
- # tmate = {this = '~/.tmate.conf', to_this = 'CONFIG_ROOT/settings/tmux/.tmate.conf'}
214
-
215
-
216
- [zellij_linux]
217
- config = { this = '~/.config/zellij', to_this = 'CONFIG_ROOT/settings/zellij' }
218
- #themes = { this = '~/.config/zellij/themes', to_this = 'CONFIG_ROOT/settings/zellij/themes' }
219
- #layouts = { this = '~/.config/zellij/layouts', to_this = 'CONFIG_ROOT/settings/zellij/layouts' }
220
-
221
-
222
- # ===================== IDEs ============================
223
-
224
- [zed_linux]
225
- settings = {this = '~/.config/zed/settings.json', to_this = 'CONFIG_ROOT/settings/zed/settings.json'}
226
-
227
- [helix_windows]
228
- languages = { this = '~/AppData/Roaming/helix/languages.toml', to_this = 'CONFIG_ROOT/settings/helix/languages.toml' }
229
- config = { this = '~/AppData/Roaming/helix/config.toml', to_this = 'CONFIG_ROOT/settings/helix/config.toml' }
230
-
231
- [helix_linux]
232
- languages = { this = '~/.config/helix/languages.toml', to_this = 'CONFIG_ROOT/settings/helix/languages.toml' }
233
- config = { this = '~/.config/helix/config.toml', to_this = 'CONFIG_ROOT/settings/helix/config.toml' }
234
- yazi_picker = { this = '~/.config/helix/yazi-picker.sh', to_this = 'CONFIG_ROOT/settings/helix/yazi-picker.sh' }
235
-
236
- [lvim_windows]
237
- config = { this = '~/AppData/Local/lvim/config.lua', to_this = 'CONFIG_ROOT/settings/lvim/windows/config.lua' }
238
-
239
- [lvim_linux]
240
- config = { this = '~/.config/lvim/config.lua', to_this = 'CONFIG_ROOT/settings/lvim/linux/config.lua' }
241
-
242
-
243
- [svim_windows]
244
- init = { this = '~/.SpaceVim.d/init.toml', to_this = 'CONFIG_ROOT/settings/svim/windows/init.toml' }
245
-
246
- [svim_linux]
247
- init = { this = '~/.SpaceVim.d/init.toml', to_this = 'CONFIG_ROOT/settings/svim/linux/init.toml' }
248
-
249
- [linters]
250
- flake8 = {this = '~/.flake8', to_this = 'CONFIG_ROOT/settings/linters/.flake8'}
251
- # as per https://mypy.readthedocs.io/en/stable/config_file.html
252
- mypy = {this = '~/mypy/config/mypy.ini', to_this = 'CONFIG_ROOT/settings/linters/.mypy.ini'}
253
- mypy2 = {this = '~/.config/mypy/config', to_this = 'CONFIG_ROOT/settings/linters/.mypy.ini'}
254
- ruff = {this = '~/.ruff.toml', to_this = 'CONFIG_ROOT/settings/linters/.ruff.toml'}
255
- pylint = {this = '~/.pylintrc', to_this = 'CONFIG_ROOT/settings/linters/.pylintrc'}
256
-
257
- # ======================= OS ===============================
258
-
259
- [apps_windows]
260
- notepadpp = {this = '~/AppData/Local/Microsoft/WindowsApps/notepad++.exe', to_this = 'C:/Program Files/Notepad++/notepad++.exe'}
261
- # tesseract = {this = '~/AppData/Local/Microsoft/WindowsApps/tesseract.exe', to_this = '~/AppData/Local/Tesseract-OCR/tesseract.exe'} # doesn't work without whole installation dir is on PATH.
262
-
263
-
@@ -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