machineconfig 5.12__tar.gz → 5.14__tar.gz

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 (424) hide show
  1. {machineconfig-5.12/src/machineconfig.egg-info → machineconfig-5.14}/PKG-INFO +1 -1
  2. {machineconfig-5.12 → machineconfig-5.14}/pyproject.toml +10 -1
  3. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/python/check_installations.py +0 -13
  4. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/create.py +127 -13
  5. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/count_lines.py +9 -5
  6. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/count_lines_frontend.py +2 -2
  7. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/croshell.py +20 -67
  8. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/interactive.py +2 -2
  9. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/repos.py +2 -2
  10. machineconfig-5.14/src/machineconfig/utils/files/ascii_art.py +118 -0
  11. machineconfig-5.14/src/machineconfig/utils/files/headers.py +64 -0
  12. machineconfig-5.14/src/machineconfig/utils/files/read.py +103 -0
  13. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/installer_utils/installer_abc.py +7 -0
  14. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/links.py +133 -16
  15. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/options.py +0 -25
  16. {machineconfig-5.12 → machineconfig-5.14/src/machineconfig.egg-info}/PKG-INFO +1 -1
  17. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig.egg-info/SOURCES.txt +3 -3
  18. machineconfig-5.12/src/machineconfig/jobs/python/create_bootable_media.py +0 -16
  19. machineconfig-5.12/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -58
  20. machineconfig-5.12/src/machineconfig/jobs/python/tasks.py +0 -3
  21. {machineconfig-5.12 → machineconfig-5.14}/MANIFEST.in +0 -0
  22. {machineconfig-5.12 → machineconfig-5.14}/README.md +0 -0
  23. {machineconfig-5.12 → machineconfig-5.14}/setup.cfg +0 -0
  24. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/__init__.py +0 -0
  25. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/__init__.py +0 -0
  26. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  27. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  28. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/distribute.py +0 -0
  29. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  30. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/job_params.py +0 -0
  31. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  32. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  33. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  34. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  35. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  36. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  37. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  38. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  39. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/ffile.py +0 -0
  40. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  41. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  42. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  43. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  44. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  45. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  46. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  47. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  48. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  49. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  50. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  51. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  52. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  53. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  54. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  55. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  56. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  57. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  58. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  59. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  60. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  61. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  62. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  63. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/templates/__init__.py +0 -0
  64. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  65. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/__init__.py +0 -0
  66. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/__init__.py +0 -0
  67. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  68. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  69. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  70. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  71. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  72. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  73. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  74. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  75. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  76. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  77. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  78. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  79. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  80. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  81. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  82. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  83. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  84. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  85. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  86. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  87. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  88. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  89. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  90. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  91. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  92. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  93. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  94. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  95. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  96. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  97. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  98. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  99. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  100. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  101. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  102. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/python/__init__.py +0 -0
  103. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  104. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  105. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  106. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  107. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  108. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  109. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  110. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  111. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  112. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  113. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/logger.py +0 -0
  114. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/__init__.py +0 -0
  115. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  116. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  117. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  118. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  119. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  120. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/profile/shell.py +0 -0
  121. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/__init__.py +0 -0
  122. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/cloud/init.sh +0 -0
  123. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/agents +0 -0
  124. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  125. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  126. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  127. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  128. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  129. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/croshell +0 -0
  130. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/devops +0 -0
  131. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/fire +0 -0
  132. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/ftpx +0 -0
  133. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/fzf2g +0 -0
  134. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/fzfag +0 -0
  135. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/fzffg +0 -0
  136. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/fzfg +0 -0
  137. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/fzfrga +0 -0
  138. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/gh_models +0 -0
  139. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/initai +0 -0
  140. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/kill_process +0 -0
  141. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/mount_drive +0 -0
  142. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  143. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  144. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/mount_smb +0 -0
  145. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/scheduler +0 -0
  146. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/sessions +0 -0
  147. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  148. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/share_nfs +0 -0
  149. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/share_smb +0 -0
  150. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/skrg +0 -0
  151. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/start_docker +0 -0
  152. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/start_slidev +0 -0
  153. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/start_terminals +0 -0
  154. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/switch_ip +0 -0
  155. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  156. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  157. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/linux/z_ls +0 -0
  158. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/__init__.py +0 -0
  159. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/agents.py +0 -0
  160. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  161. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  162. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  163. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  164. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  165. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  166. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  167. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  168. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  169. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  170. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  171. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  172. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  173. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  174. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  175. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  176. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  177. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  178. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  179. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  180. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  181. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  182. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  183. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  184. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  185. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  186. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  187. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  188. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  189. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  190. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  191. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  192. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  193. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/devops.py +0 -0
  194. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  195. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  196. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  197. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
  198. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/dotfile.py +0 -0
  199. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
  200. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
  201. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_agents_helper_types.py +0 -0
  202. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
  203. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  204. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  205. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_jobs_route_helper.py +0 -0
  206. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  207. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/ftpx.py +0 -0
  208. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  209. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/gh_models.py +0 -0
  210. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  211. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  212. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  213. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  214. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  215. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  216. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  217. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  218. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  219. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  220. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  221. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/repos_helper.py +0 -0
  222. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
  223. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
  224. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
  225. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
  226. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/scheduler.py +0 -0
  227. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/sessions.py +0 -0
  228. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/share_terminal.py +0 -0
  229. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/snapshot.py +0 -0
  230. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  231. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  232. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/t4.py +0 -0
  233. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/viewer.py +0 -0
  234. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  235. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  236. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  237. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/agents.ps1 +0 -0
  238. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  239. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  240. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  241. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  242. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  243. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  244. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  245. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
  246. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  247. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  248. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  249. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  250. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  251. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  252. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  253. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
  254. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  255. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  256. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  257. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  258. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  259. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  260. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  261. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  262. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  263. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/sessions.ps1 +0 -0
  264. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  265. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  266. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  267. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  268. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  269. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  270. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  271. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  272. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  273. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  274. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/__init__.py +0 -0
  275. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/broot/br.sh +0 -0
  276. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  277. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/broot/conf.toml +0 -0
  278. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/glow/glow.yml +0 -0
  279. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  280. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/helix/config.toml +0 -0
  281. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/helix/languages.toml +0 -0
  282. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/keras/keras.json +0 -0
  283. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  284. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  285. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  286. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  287. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  288. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  289. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  290. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  291. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  292. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  293. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/colors +0 -0
  294. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  295. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  296. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  297. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  298. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  299. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  300. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/icons +0 -0
  301. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  302. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  303. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  304. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  305. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  306. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  307. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  308. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  309. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  310. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  311. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  312. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/colors +0 -0
  313. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  314. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/icons +0 -0
  315. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  316. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  317. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  318. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  319. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  320. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  321. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  322. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/linters/.flake8 +0 -0
  323. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  324. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/linters/.pylintrc +0 -0
  325. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  326. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  327. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  328. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  329. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  330. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  331. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/mprocs/windows/other +0 -0
  332. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  333. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  334. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/procs/.procs.toml +0 -0
  335. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  336. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/rofi/config.rasi +0 -0
  337. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  338. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  339. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  340. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  341. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  342. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  343. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  344. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  345. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  346. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  347. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  348. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  349. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  350. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  351. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  352. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  353. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  354. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/streamlit/config.toml +0 -0
  355. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  356. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  357. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  358. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/tere/terecd.sh +0 -0
  359. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  360. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  361. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  362. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  363. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/yazi/theme.toml +0 -0
  364. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  365. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zed/settings.json +0 -0
  366. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  367. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  368. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/config.kdl +0 -0
  369. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  370. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  371. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  372. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  373. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  374. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  375. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/__init__.py +0 -0
  376. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  377. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  378. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
  379. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  380. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
  381. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  382. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
  383. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/__init__.py +0 -0
  384. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  385. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  386. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
  387. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
  388. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
  389. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  390. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
  391. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  392. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  393. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/__init__.py +0 -0
  394. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/accessories.py +0 -0
  395. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/ai/__init__.py +0 -0
  396. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  397. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  398. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  399. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/code.py +0 -0
  400. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/installer.py +0 -0
  401. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  402. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  403. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  404. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  405. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/io.py +0 -0
  406. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/notifications.py +0 -0
  407. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/path_extended.py +0 -0
  408. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/path_helper.py +0 -0
  409. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/procs.py +0 -0
  410. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/scheduler.py +0 -0
  411. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/scheduling.py +0 -0
  412. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  413. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  414. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  415. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  416. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/source_of_truth.py +0 -0
  417. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/ssh.py +0 -0
  418. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/terminal.py +0 -0
  419. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/upgrade_packages.py +0 -0
  420. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig/utils/ve.py +0 -0
  421. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  422. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig.egg-info/entry_points.txt +0 -0
  423. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig.egg-info/requires.txt +0 -0
  424. {machineconfig-5.12 → machineconfig-5.14}/src/machineconfig.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 5.12
3
+ Version: 5.14
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "5.12"
9
+ version = "5.14"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -85,6 +85,7 @@ where = ["src"]
85
85
  dev = [
86
86
  "aider>=0.2.6",
87
87
  "cleanpy>=0.5.1",
88
+ "cowsay>=6.1",
88
89
  "ipdb>=0.13.13",
89
90
  "ipykernel>=6.30.1",
90
91
  "ipython>=9.5.0",
@@ -106,13 +107,21 @@ dev = [
106
107
  "types-sqlalchemy>=1.4.53.38",
107
108
  "types-toml>=0.10.8.20240310",
108
109
  "types-urllib3>=1.26.25.14",
110
+ "vt-py>=0.21.0",
109
111
  ]
110
112
  docs = [
111
113
  "pdoc>=15.0.2",
112
114
  ]
113
115
  plot = [
116
+ "duckdb-engine>=0.17.0",
117
+ "ipykernel>=6.30.1",
118
+ "jupyterlab>=4.4.9",
114
119
  "kaleido>=1.1.0",
120
+ "matplotlib>=3.10.6",
121
+ "nbformat>=5.10.4",
115
122
  "numpy>=2.3.3",
116
123
  "plotly>=6.3.0",
117
124
  "polars>=1.33.1",
125
+ "python-magic>=0.4.27",
126
+ "sqlalchemy>=2.0.43",
118
127
  ]
@@ -1,19 +1,6 @@
1
- # """CI
2
- # """
3
1
 
4
-
5
- # import time
6
2
  import platform
7
-
8
- # from typing import Any
9
- # from rich.console import Console
10
- # from machineconfig.utils.utils2 import pprint
11
- # # from rich.progress import track
12
3
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT
13
- # from machineconfig.utils.installer import get_installed_cli_apps
14
- # from typing import Optional
15
- # from datetime import datetime
16
- # import csv
17
4
 
18
5
 
19
6
  APP_SUMMARY_PATH = LIBRARY_ROOT.joinpath(f"profile/records/{platform.system().lower()}/apps_summary_report.csv")
@@ -8,6 +8,7 @@ from rich.console import Console
8
8
  from rich.panel import Panel
9
9
  from rich.pretty import Pretty
10
10
  from rich.text import Text
11
+ from rich.table import Table
11
12
 
12
13
  from machineconfig.utils.path_extended import PathExtended
13
14
  from machineconfig.utils.links import symlink_func, symlink_copy
@@ -20,7 +21,7 @@ import os
20
21
  import ctypes
21
22
  import subprocess
22
23
  import tomllib
23
- from typing import Optional, Any, TypedDict
24
+ from typing import Optional, Any, TypedDict, Literal
24
25
 
25
26
  system = platform.system() # Linux or Windows
26
27
  ERROR_LIST: list[Any] = [] # append to this after every exception captured.
@@ -43,10 +44,35 @@ class SymlinkMapper(TypedDict):
43
44
  contents: Optional[bool]
44
45
 
45
46
 
46
- def apply_mapper(choice: Optional[str] = None):
47
+ class OperationRecord(TypedDict):
48
+ program: str
49
+ file_key: str
50
+ source: str
51
+ target: str
52
+ operation: str
53
+ action: Literal[
54
+ "already_linked",
55
+ "relinking",
56
+ "fixing_broken_link",
57
+ "identical_files",
58
+ "backing_up_source",
59
+ "backing_up_target",
60
+ "relinking_to_new_target",
61
+ "moving_to_target",
62
+ "new_link",
63
+ "new_link_and_target",
64
+ "linking",
65
+ "copying",
66
+ "error"
67
+ ]
68
+ details: str
69
+ status: str
70
+
71
+
72
+ def apply_mapper(choice: Optional[str], prioritize_to_this: bool):
47
73
  symlink_mapper: dict[str, dict[str, SymlinkMapper]] = tomllib.loads(LIBRARY_ROOT.joinpath("profile/mapper.toml").read_text(encoding="utf-8"))
48
- prioritize_to_this = True
49
74
  exclude: list[str] = [] # "wsl_linux", "wsl_windows"
75
+ operation_records: list[OperationRecord] = []
50
76
 
51
77
  program_keys_raw: list[str] = list(symlink_mapper.keys())
52
78
  program_keys: list[str] = []
@@ -64,10 +90,6 @@ def apply_mapper(choice: Optional[str] = None):
64
90
  return # terminate function.
65
91
  elif len(choice_selected) == 1 and choice_selected[0] == "all":
66
92
  choice_selected = "all" # i.e. program_keys = program_keys
67
- # overwrite = choose_from_options(msg="Overwrite existing source file?", options=["yes", "no"], default="yes") == "yes"
68
- from rich.prompt import Confirm
69
-
70
- prioritize_to_this = Confirm.ask("Overwrite existing source file?", default=True)
71
93
  else:
72
94
  choice_selected = choice
73
95
 
@@ -114,22 +136,85 @@ def apply_mapper(choice: Optional[str] = None):
114
136
  for file_key, file_map in symlink_mapper[program_key].items():
115
137
  this = PathExtended(file_map["this"])
116
138
  to_this = PathExtended(file_map["to_this"].replace("REPO_ROOT", REPO_ROOT.as_posix()).replace("LIBRARY_ROOT", LIBRARY_ROOT.as_posix()))
139
+
117
140
  if "contents" in file_map:
118
141
  try:
119
- for a_target in to_this.expanduser().search("*"):
120
- symlink_func(this=this.joinpath(a_target.name), to_this=a_target, prioritize_to_this=prioritize_to_this)
142
+ targets = list(to_this.expanduser().search("*"))
143
+ for a_target in targets:
144
+ result = symlink_func(this=this.joinpath(a_target.name), to_this=a_target, prioritize_to_this=prioritize_to_this)
145
+ operation_records.append({
146
+ "program": program_key,
147
+ "file_key": file_key,
148
+ "source": str(this.joinpath(a_target.name)),
149
+ "target": str(a_target),
150
+ "operation": "contents_symlink",
151
+ "action": result["action"],
152
+ "details": result["details"],
153
+ "status": "success"
154
+ })
121
155
  except Exception as ex:
122
156
  console.print(f"❌ [red]Config error[/red]: {program_key} | {file_key} | missing keys 'this ==> to_this'. {ex}")
123
- if "copy" in file_map:
157
+ operation_records.append({
158
+ "program": program_key,
159
+ "file_key": file_key,
160
+ "source": str(this),
161
+ "target": str(to_this),
162
+ "operation": "contents_symlink",
163
+ "action": "error",
164
+ "details": f"Failed to process contents: {str(ex)}",
165
+ "status": f"error: {str(ex)}"
166
+ })
167
+
168
+ elif "copy" in file_map:
124
169
  try:
125
- symlink_copy(this=this, to_this=to_this, prioritize_to_this=prioritize_to_this)
170
+ result = symlink_copy(this=this, to_this=to_this, prioritize_to_this=prioritize_to_this)
171
+ operation_records.append({
172
+ "program": program_key,
173
+ "file_key": file_key,
174
+ "source": str(this),
175
+ "target": str(to_this),
176
+ "operation": "copy",
177
+ "action": result["action"],
178
+ "details": result["details"],
179
+ "status": "success"
180
+ })
126
181
  except Exception as ex:
127
182
  console.print(f"❌ [red]Config error[/red]: {program_key} | {file_key} | {ex}")
183
+ operation_records.append({
184
+ "program": program_key,
185
+ "file_key": file_key,
186
+ "source": str(this),
187
+ "target": str(to_this),
188
+ "operation": "copy",
189
+ "action": "error",
190
+ "details": f"Failed to copy: {str(ex)}",
191
+ "status": f"error: {str(ex)}"
192
+ })
128
193
  else:
129
194
  try:
130
- symlink_func(this=this, to_this=to_this, prioritize_to_this=prioritize_to_this)
195
+ result = symlink_func(this=this, to_this=to_this, prioritize_to_this=prioritize_to_this)
196
+ operation_records.append({
197
+ "program": program_key,
198
+ "file_key": file_key,
199
+ "source": str(this),
200
+ "target": str(to_this),
201
+ "operation": "symlink",
202
+ "action": result["action"],
203
+ "details": result["details"],
204
+ "status": "success"
205
+ })
131
206
  except Exception as ex:
132
207
  console.print(f"❌ [red]Config error[/red]: {program_key} | {file_key} | missing keys 'this ==> to_this'. {ex}")
208
+ operation_records.append({
209
+ "program": program_key,
210
+ "file_key": file_key,
211
+ "source": str(this),
212
+ "target": str(to_this),
213
+ "operation": "symlink",
214
+ "action": "error",
215
+ "details": f"Failed to create symlink: {str(ex)}",
216
+ "status": f"error: {str(ex)}"
217
+ })
133
218
 
134
219
  if program_key == "ssh" and system == "Linux": # permissions of ~/dotfiles/.ssh should be adjusted
135
220
  try:
@@ -147,6 +232,35 @@ def apply_mapper(choice: Optional[str] = None):
147
232
  subprocess.run(f"chmod +x {LIBRARY_ROOT.joinpath(f'scripts/{system.lower()}')} -R", shell=True, capture_output=True, text=True)
148
233
  console.print("[green]✅ Script permissions updated[/green]")
149
234
 
235
+ # Display operation summary table
236
+ if operation_records:
237
+ table = Table(title="🔗 Symlink Operations Summary", show_header=True, header_style="bold magenta")
238
+ table.add_column("Program", style="cyan", no_wrap=True)
239
+ table.add_column("File Key", style="blue", no_wrap=True)
240
+ table.add_column("Source", style="green")
241
+ table.add_column("Target", style="yellow")
242
+ table.add_column("Operation", style="magenta", no_wrap=True)
243
+ table.add_column("Action", style="red", no_wrap=True)
244
+ table.add_column("Details", style="white")
245
+ table.add_column("Status", style="red", no_wrap=True)
246
+
247
+ for record in operation_records:
248
+ status_style = "green" if record["status"] == "success" else "red"
249
+ action_style = "green" if record["action"] != "error" else "red"
250
+ table.add_row(
251
+ record["program"],
252
+ record["file_key"],
253
+ record["source"],
254
+ record["target"],
255
+ record["operation"],
256
+ f"[{action_style}]{record['action']}[/{action_style}]",
257
+ record["details"],
258
+ f"[{status_style}]{record['status']}[/{status_style}]"
259
+ )
260
+
261
+ console.print("\n")
262
+ console.print(table)
263
+
150
264
  if len(ERROR_LIST) > 0:
151
265
  console.print(
152
266
  Panel(
@@ -169,7 +283,7 @@ def apply_mapper(choice: Optional[str] = None):
169
283
  def main_symlinks():
170
284
  console.print("")
171
285
  console.rule("[bold blue]🔗 CREATING SYMLINKS 🔗")
172
- apply_mapper(choice="all")
286
+ apply_mapper(choice="all", prioritize_to_this=True)
173
287
 
174
288
 
175
289
  def main_profile():
@@ -1,4 +1,3 @@
1
- from __future__ import annotations
2
1
 
3
2
  from typing import TYPE_CHECKING
4
3
  from git import Repo
@@ -7,15 +6,12 @@ from datetime import datetime
7
6
 
8
7
  from pathlib import Path
9
8
  from rich.progress import track
10
- import polars as pl
11
- import plotly.graph_objects as go
12
-
13
- import plotly.express as px
14
9
  import typer
15
10
 
16
11
 
17
12
  if TYPE_CHECKING:
18
13
  from typing import Any, Dict, List, Optional, Union
14
+ import polars as pl
19
15
 
20
16
 
21
17
  app = typer.Typer()
@@ -110,6 +106,10 @@ def analyze_over_time(repo_path: str = typer.Argument(..., help="Path to the git
110
106
  except Exception as e:
111
107
  print(f"❌ Error analyzing commits: {str(e)}")
112
108
  return
109
+
110
+ import polars as pl
111
+ import plotly.graph_objects as go
112
+
113
113
  df = pl.DataFrame(commit_data)
114
114
  df = df.sort("dtmExit")
115
115
  # Create interactive plotly figure with dark theme and all bells and whistles
@@ -184,6 +184,10 @@ def analyze_over_time(repo_path: str = typer.Argument(..., help="Path to the git
184
184
 
185
185
 
186
186
  def _print_python_files_by_size_impl(repo_path: str) -> "Union[pl.DataFrame, Exception]":
187
+ import polars as pl
188
+ import plotly.graph_objects as go
189
+ import plotly.express as px
190
+
187
191
  try:
188
192
  import os
189
193
  if not os.path.exists(repo_path):
@@ -5,9 +5,9 @@ import typer
5
5
  def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to the git repository")):
6
6
  from machineconfig.scripts.python import count_lines
7
7
  from pathlib import Path
8
- count_lines_path = Path(count_lines.__file__).resolve().parent.joinpath("count_lines.py")
8
+ count_lines_path = Path(count_lines.__file__)
9
9
  # --project $HOME/code/machineconfig
10
- cmd = f"""uv run --python 3.13 --with machineconfig--group plot {count_lines_path} analyze-over-time {repo_path}"""
10
+ cmd = f"""uv run --python 3.13 --with machineconfig[plot] {count_lines_path} analyze-over-time {repo_path}"""
11
11
  from machineconfig.utils.code import run_script
12
12
  run_script(cmd)
13
13
 
@@ -40,8 +40,6 @@ except Exception: print(pycode)
40
40
 
41
41
 
42
42
  def get_read_data_pycode(path: str):
43
- # We need to be careful here since we're generating Python code as a string
44
- # that will use f-strings itself
45
43
  return f"""
46
44
  from rich.panel import Panel
47
45
  from rich.text import Text
@@ -49,7 +47,8 @@ from rich.console import Console
49
47
  console = Console()
50
48
  p = PathExtended(r'{path}').absolute()
51
49
  try:
52
- dat = p.readit()
50
+ from machineconfig.utils.files.read import Read
51
+ dat = Read.read(p)
53
52
  if isinstance(dat, dict):
54
53
  panel_title = f"📄 File Data: {{p.name}}"
55
54
  console.print(Panel(Text(str(dat), justify="left"), title=panel_title, expand=False))
@@ -63,53 +62,25 @@ except Exception as e:
63
62
  """
64
63
 
65
64
 
66
- def get_read_pyfile_pycode(path: PathExtended, as_module: bool, cmd: str = ""):
67
- if as_module:
68
- pycode = rf"""
69
- import sys
70
- sys.path.append(r'{path.parent}')
71
- from {path.stem} import *
72
- {cmd}
73
- """
74
- else:
75
- pycode = f"""
76
- __file__ = PathExtended(r'{path}')
77
- {path.read_text(encoding="utf-8")}
78
- """
79
- return pycode
80
-
81
65
 
82
66
  def main(
83
- module: Annotated[bool, typer.Option("--module", "-m", help="flag to run the file as a module as opposed to main.")] = False,
84
- newWindow: Annotated[bool, typer.Option("--newWindow", "-w", help="flag for running in new window.")] = False,
85
- nonInteratctive: Annotated[bool, typer.Option("--nonInteratctive", "-N", help="flag for a non-interactive session.")] = False,
86
67
  python: Annotated[bool, typer.Option("--python", "-p", help="flag to use python over IPython.")] = False,
87
68
  fzf: Annotated[bool, typer.Option("--fzf", "-F", help="search with fuzzy finder for python scripts and run them")] = False,
88
69
  ve: Annotated[Optional[str], typer.Option("--ve", "-v", help="virtual enviroment to use, defaults to activated ve, if existed, else ve.")] = None,
89
70
  profile: Annotated[Optional[str], typer.Option("--profile", "-P", help="ipython profile to use, defaults to default profile.")] = None,
90
71
  read: Annotated[str, typer.Option("--read", "-r", help="read a binary file.")] = "",
91
- file: Annotated[str, typer.Option("--file", "-f", help="python file path to interpret")] = "",
92
- cmd: Annotated[str, typer.Option("--cmd", "-c", help="python command to interpret")] = "",
93
- terminal: Annotated[str, typer.Option("--terminal", "-t", help="specify which terminal to be used. Default console host.")] = "",
94
- shell: Annotated[str, typer.Option("--shell", "-S", help="specify which shell to be used. Defaults to CMD.")] = "",
95
72
  jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
96
73
  streamlit_viewer: Annotated[bool, typer.Option("--stViewer", "-s", help="view in streamlit app")] = False,
74
+ visidata: Annotated[bool, typer.Option("--visidata", "-V", help="open data file in visidata")] = False,
97
75
  ) -> None:
98
76
  # ==================================================================================
99
77
  # flags processing
100
- interactivity = "" if nonInteratctive else "-i"
78
+ interactivity = "-i"
101
79
  interpreter = "python" if python else "ipython"
102
80
  ipython_profile: Optional[str] = profile
103
81
  file_obj = PathExtended.cwd() # initialization value, could be modified according to args.
104
82
 
105
- if cmd != "":
106
- text = "🖥️ Executing command from CLI argument"
107
- console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
108
- import textwrap
109
-
110
- program = textwrap.dedent(cmd)
111
-
112
- elif fzf:
83
+ if fzf:
113
84
  text = "🔍 Searching for Python files..."
114
85
  console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
115
86
  options = [str(item) for item in PathExtended.cwd().search("*.py", r=True)]
@@ -119,13 +90,6 @@ def main(
119
90
  text = f"📄 Selected file: {PathExtended(file_selected).name}"
120
91
  console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
121
92
 
122
- elif file != "":
123
- file_obj = PathExtended(file.lstrip()).expanduser().absolute()
124
- program = get_read_pyfile_pycode(file_obj, as_module=module, cmd=cmd)
125
- text1 = f"📄 Loading file: {file_obj.name}"
126
- text2 = f"🔄 Mode: {'Module' if module else 'Script'}"
127
- console.print(Panel(f"{text1}\n{text2}", title="[bold blue]Info[/bold blue]"))
128
-
129
93
  elif read != "":
130
94
  if streamlit_viewer:
131
95
  # text = "📊 STARTING STREAMLIT VIEWER"
@@ -154,46 +118,35 @@ def main(
154
118
  preprogram = """
155
119
 
156
120
  #%%
157
- try:
158
- from crocodile.croshell import *
159
- print_header()
160
- print_logo(logo="crocodile")
161
- except ImportError:
162
- print("Crocodile not found, skipping import.")
121
+
122
+ from machineconfig.utils.files.headers import print_header, print_logo
123
+ print_header()
124
+ print_logo("CROCODILE")
163
125
  from pathlib import Path
164
- print(f"🐊 Crocodile Shell | Running @ {Path.cwd()}")
126
+
165
127
  """
166
128
 
167
129
  pyfile = PathExtended.tmp().joinpath(f"tmp_scripts/python/croshell/{randstr()}.py")
168
130
  pyfile.parent.mkdir(parents=True, exist_ok=True)
169
131
 
170
- if read != "":
171
- title = "Reading Data"
172
- elif file != "":
173
- title = "Running Python File"
174
- else:
175
- title = "Executed code"
132
+ title = "Reading Data"
176
133
  python_program = preprogram + add_print_header_pycode(str(pyfile), title=title) + program
177
134
  pyfile.write_text(python_program, encoding="utf-8")
178
135
  # ve_root_from_file, ipython_profile = get_ve_path_and_ipython_profile(PathExtended(file))
179
136
  ipython_profile = ipython_profile if ipython_profile is not None else "default"
180
137
  # ve_activateion_line = get_ve_activate_line(ve_name=args.ve or ve_profile_suggested, a_path=str(PathExtended.cwd()))
181
- shell_program = """
182
- #!/bin/bash
183
138
 
184
- """
185
- if jupyter:
139
+ if visidata:
140
+ fire_line = f"uv run --with visidata,pyarrow vd {str(file_obj)}"
141
+ elif jupyter:
186
142
  fire_line = f"code --new-window {str(pyfile)}"
187
143
  else:
188
- fire_line = f"uv run --project $HOME/code/machineconfig/.venv {interpreter} {interactivity} "
189
- if interpreter == "ipython": fire_line += f" --profile {ipython_profile} --no-banner"
190
- fire_line += " " + str(pyfile)
191
- shell_program += fire_line
192
- from rich.syntax import Syntax
193
- console.print(Syntax(shell_program, lexer="bash"))
194
- print()
195
- import subprocess
196
- subprocess.run(shell_program, shell=True, check=True)
144
+ if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
145
+ else: profile = ""
146
+ fire_line = f"uv run --python 3.13 --with machineconfig[plot] {interpreter} {interactivity} {profile} {str(pyfile)}"
147
+
148
+ from machineconfig.utils.code import run_script
149
+ run_script(fire_line)
197
150
 
198
151
 
199
152
  def arg_parser() -> None:
@@ -186,8 +186,8 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
186
186
 
187
187
  if "retrieve_repositories" in selected_options:
188
188
  console.print(Panel("📚 [bold bright_magenta]REPOSITORIES[/bold bright_magenta]\n[italic]Project code retrieval[/italic]", border_style="bright_magenta"))
189
- from machineconfig.scripts.python import repos as module
190
- module.main(directory=str(Path.home() / "code"), capture=True, cloud="odg1")
189
+ from machineconfig.scripts.python import repos
190
+ repos.clone(directory=str(Path.home() / "code"), cloud="odg1")
191
191
 
192
192
  if "retrieve_data" in selected_options:
193
193
  console.print(Panel("💾 [bold bright_cyan]DATA RETRIEVAL[/bold bright_cyan]\n[italic]Backup restoration[/italic]", border_style="bright_cyan"))
@@ -73,7 +73,7 @@ def all(
73
73
 
74
74
 
75
75
  @sync_app.command()
76
- def record(
76
+ def capture(
77
77
  directory: DirectoryArgument = None,
78
78
  cloud: CloudOption = None,
79
79
  ) -> None:
@@ -87,7 +87,7 @@ def record(
87
87
  if cloud is not None:
88
88
  PathExtended(save_path).to_cloud(rel2home=True, cloud=cloud)
89
89
  @sync_app.command()
90
- def capture(
90
+ def clone(
91
91
  directory: DirectoryArgument = None,
92
92
  cloud: CloudOption = None,
93
93
  ) -> None:
@@ -0,0 +1,118 @@
1
+ """Ascii art
2
+ """
3
+
4
+ import os
5
+ import random
6
+ import textwrap
7
+ import subprocess
8
+ from pathlib import Path
9
+ import tempfile
10
+ import platform
11
+ from typing import Optional, Literal
12
+
13
+ # https://github.com/sepandhaghighi/art
14
+
15
+
16
+ BOX_OR_CHAR = Literal['boxes', 'cowsay']
17
+
18
+
19
+ class ArtLib:
20
+ @staticmethod
21
+ def cowsay(text: str):
22
+ import cowsay
23
+ char = random.choice(cowsay.char_names)
24
+ return cowsay.get_output_string(char, text=text)
25
+
26
+
27
+ class BoxStyles:
28
+ language = ['ada-box', 'caml', 'boxquote', 'stone', 'tex-box', 'shell', 'simple', 'c', 'cc', 'html']
29
+ scene = ['whirly', 'xes', 'columns', 'parchment', 'scroll', 'scroll-akn', 'diamonds', 'headline', 'nuke', 'spring', 'stark1'] # , 'important3'
30
+ character = ['capgirl', 'cat', 'boy', 'girl', 'dog', 'mouse', 'santa', 'face', 'ian_jones', 'peek', 'unicornsay']
31
+
32
+
33
+ class CowStyles:
34
+ eyes = ['-b', '-d', '-g', '-h', '-l', '-L', '-n', '-N', '-p', '-s', '-t', '-w', '-y']
35
+ # this one for the package installed with sudo apt install cowsay and is located at /usr/games/cowsay. See cowsay -l
36
+ figures = ['apt', 'bunny', 'cheese', 'cock', 'cower', 'daemon', 'default', 'dragon',
37
+ 'dragon-and-cow', 'duck', 'elephant', 'elephant-in-snake', 'eyes', 'fox', 'ghostbusters',
38
+ 'gnu', 'kangaroo', 'kiss', 'milk',
39
+ 'moose', 'pony', 'pony-smaller', 'sheep', 'skeleton', 'snowman', 'stegosaurus', # 'suse',
40
+ 'three-eyes', 'turkey', 'turtle', 'tux', 'unipony', 'unipony-smaller', 'vader', 'vader'] # 'hellokitty' 'mech-and-cow' # 'moofasa', 'stimpy', 'calvin', , 'ren', 'koala', 'flaming-sheep' , 'bud-frogs' , 'kosh' , 'luke-koala'
41
+
42
+
43
+ FIGLET_FONTS = ['banner', 'big', 'standard']
44
+
45
+ FIGJS_FONTS = ['3D Diagonal', '3D-ASCII', '4Max', '5 Line Oblique', 'Acrobatic', 'ANSI Regular', 'ANSI Shadow',
46
+ 'Avatar', 'Banner', 'Banner3-D', 'Banner4',
47
+ 'Basic', 'Big Money-ne', 'Big Money-nw', 'Big Money-se', 'Big Money-sw', 'Big', 'Bloody', 'Bolger', 'Braced', 'Bright',
48
+ 'DOS Rebel',
49
+ 'Elite', 'Epic', 'Flower Power',
50
+ 'Fraktur', # 'Isometric4'. 'AMC Tubes', 'Banner3', Alligator2
51
+ 'Star Wars',
52
+ 'Sub-Zero', 'The Edge', 'USA Flag', 'Varsity', "Doom"
53
+ ] # too large Crazy 'Sweet', 'Electronic', 'Swamp Land', Crawford, Alligator
54
+
55
+
56
+ def get_art(comment: Optional[str] = None, artlib: Optional[BOX_OR_CHAR] = None, style: Optional[str] = None, super_style: str = 'scene', prefix: str = ' ', file: Optional[str] = None, verbose: bool = True):
57
+ """ takes in a comment and does the following wrangling:
58
+ * text => figlet font => boxes => lolcat
59
+ * text => cowsay => lolcat
60
+ """
61
+ if comment is None:
62
+ try:
63
+ comment = subprocess.run("fortune", shell=True, capture_output=True, text=True, check=True).stdout
64
+ except Exception:
65
+ comment = "crocodile"
66
+ if artlib is None: artlib = random.choice(['boxes', 'cowsay'])
67
+ to_file = '' if not file else f'> {file}'
68
+ if artlib == 'boxes':
69
+ if style is None: style = random.choice(BoxStyles.__dict__[super_style or random.choice(['language', 'scene', 'character'])])
70
+ fonting = f'figlet -f {random.choice(FIGLET_FONTS)}'
71
+ cmd = f"""echo "{comment}" | {fonting} | boxes -d {style} {to_file}"""
72
+ else:
73
+ if style is None: style = random.choice(CowStyles.figures)
74
+ cmd = f"""echo "{comment}" | /usr/games/cowsay -f {style} {to_file}"""
75
+ try:
76
+ res = subprocess.run(cmd, text=True, capture_output=True, shell=True, check=True).stdout
77
+ except subprocess.CalledProcessError as ex:
78
+ print(ex)
79
+ return ""
80
+ res = textwrap.indent(res, prefix=prefix)
81
+ if verbose:
82
+ print(f'Using style: {style} from {artlib}', '\n' * 3)
83
+ print(f'{cmd=}')
84
+ print('Results:\n', res)
85
+ return res
86
+
87
+
88
+ def font_box_color(logo: str):
89
+ font = random.choice(FIGJS_FONTS)
90
+ # print(f"{font}\n")
91
+ box_style = random.choice(['whirly', 'xes', 'columns', 'parchment', 'scroll', 'scroll-akn', 'diamonds', 'headline', 'nuke', 'spring', 'stark1'])
92
+ _cmd = f'figlet -f "{font}" "{logo}" | boxes -d "{box_style}" | lolcatjs'
93
+ # print(_cmd)
94
+ os.system(_cmd) # | lolcat
95
+ # print("after")
96
+
97
+
98
+ def character_color(logo: str):
99
+ assert platform.system() == 'Windows', 'This function is only for Windows.'
100
+ with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as f:
101
+ f.write(ArtLib.cowsay(logo))
102
+ _new_art = f.name
103
+ os.system(f'type {_new_art} | lolcatjs') # | lolcat
104
+
105
+
106
+ def character_or_box_color(logo: str):
107
+ assert platform.system() in {'Linux', 'Darwin'}, 'This function is only for Linux and macOS.'
108
+ with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as f:
109
+ _new_art = f.name
110
+ get_art(logo, artlib=None, file=_new_art, verbose=False)
111
+ # Prefer bat on mac if available, fallback to cat
112
+ pager = "bat" if (platform.system() == "Darwin" and any((Path(p).joinpath("bat").exists() for p in os.environ.get("PATH", "").split(os.pathsep)))) else "cat"
113
+ command = f"{pager} {_new_art} | lolcat"
114
+ os.system(command)
115
+
116
+
117
+ if __name__ == '__main__':
118
+ pass