machineconfig 3.85__tar.gz → 3.88__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.
- {machineconfig-3.85/src/machineconfig.egg-info → machineconfig-3.88}/PKG-INFO +1 -1
- {machineconfig-3.85 → machineconfig-3.88}/pyproject.toml +1 -1
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_agents.py +4 -5
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_jobs_layout_helper.py +24 -16
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/repos.py +10 -88
- machineconfig-3.88/src/machineconfig/scripts/python/repos_helper_action.py +335 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/t4.py +3 -2
- machineconfig-3.88/src/machineconfig/utils/accessories.py +110 -0
- machineconfig-3.88/src/machineconfig/utils/schemas/layouts/layout_types.py +61 -0
- {machineconfig-3.85 → machineconfig-3.88/src/machineconfig.egg-info}/PKG-INFO +1 -1
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig.egg-info/SOURCES.txt +1 -0
- machineconfig-3.85/src/machineconfig/utils/accessories.py +0 -72
- machineconfig-3.85/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -29
- {machineconfig-3.85 → machineconfig-3.88}/MANIFEST.in +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/README.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/setup.cfg +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/distribute.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/file_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/job_params.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/script_execution.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/enhanced_command_runner.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/templates/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/templates/run_cloud.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/templates/run_cluster.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/templates/run_remote.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/cluster/templates/utils.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/check_installations.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/tasks.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/vscode/api.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/archive/ngrok.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/aider.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/alacritty.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/brave.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/code.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/cursor.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/espanso.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/goes.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/lvim.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/nerdfont.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/redis.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/wezterm.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/dev/winget.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/docker.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/gh.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/hx.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_custom_installers/warp-cli.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_generic_installers/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_generic_installers/config.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_generic_installers/config.json.bak +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_generic_installers/dev/config.archive.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_generic_installers/dev/config.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_generic_installers/dev/config.json.bak +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/archive/config.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/archive/config.json.bak +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/config.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/config.json.bak +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/dev/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/dev/config.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_linux_installers/dev/config.json.bak +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/archive/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/archive/file.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/config.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/config.json.bak +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/dev/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/dev/config.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/python_windows_installers/dev/config.json.bak +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/logger.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/create.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/records/generic/shares.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/profile/shell.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/cloud/init.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/cloud_copy +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/cloud_mount +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/cloud_sync +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/croshell +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/devops +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/fire +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/fire_agents +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/ftpx +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/fzf2g +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/fzfag +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/fzffg +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/fzfg +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/fzfrga +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/gh_models +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/initai +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/kill_process +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/mount_drive +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/mount_nfs +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/mount_smb +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/programs +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/repos +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/scheduler +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/share_nfs +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/share_smb +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/skrg +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/start_docker +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/start_slidev +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/start_terminals +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/switch_ip +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/wifi_conn +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/linux/z_ls +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/initai.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/croshell.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/devops.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/devops_devapps_install.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/dotfile.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/ftpx.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/gh_models.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/pomodoro.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/scheduler.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/share_terminal.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/snapshot.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/start_slidev.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/start_terminals.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/viewer.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/viewer_template.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/repos.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/broot/br.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/broot/conf.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/glow/glow.yml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/helix/config.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/helix/languages.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/keras/keras.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/colors +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/icons +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/linux/lfrc +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/colors +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/icons +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/lfrc +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/linters/.flake8 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/linters/.mypy.ini +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/linters/.pylintrc +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/linters/.ruff.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/mprocs/windows/other +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/pistol/pistol.conf +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/presenterm/config.yaml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/procs/.procs.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/rofi/config.rasi +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/bash/init.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/shells/wt/settings.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/streamlit/config.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/svim/linux/init.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/svim/windows/init.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/tere/terecd.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/wsl/.wslconfig +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/yazi/keymap.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/yazi/theme.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/yazi/yazi.toml +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zed/settings.json +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/commands/monitor +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/config.kdl +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/layouts/hist +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/wt_and_pwsh/install_fonts.ps1 +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/ai/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/code.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/installer.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/io.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/links.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/notifications.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/options.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/path_extended.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/path_helper.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/procs.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/scheduler.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/scheduling.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/source_of_truth.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/ssh.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/terminal.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/upgrade_packages.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig/utils/ve.py +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig.egg-info/dependency_links.txt +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig.egg-info/entry_points.txt +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig.egg-info/requires.txt +0 -0
- {machineconfig-3.85 → machineconfig-3.88}/src/machineconfig.egg-info/top_level.txt +0 -0
|
@@ -151,10 +151,10 @@ manager.run_monitoring_routine()
|
|
|
151
151
|
|
|
152
152
|
|
|
153
153
|
def split_too_many_tabs_to_run_in_sequential_sessions(layout_tabs: list[TabConfig], every: int):
|
|
154
|
-
from machineconfig.utils.accessories import
|
|
154
|
+
from machineconfig.utils.accessories import split_list
|
|
155
155
|
from machineconfig.cluster.sessions_managers.zellij_local_manager import ZellijLocalManager
|
|
156
156
|
|
|
157
|
-
for idx, layout_tabs_chunk in enumerate(
|
|
157
|
+
for idx, layout_tabs_chunk in enumerate(split_list(layout_tabs, every=every, to=None)):
|
|
158
158
|
a_layout_file: LayoutConfig = {"layoutName": f"split_{idx}", "layoutTabs": layout_tabs_chunk}
|
|
159
159
|
manager = ZellijLocalManager(session_layouts=[a_layout_file])
|
|
160
160
|
manager.start_all_sessions(poll_interval=2, poll_seconds=2)
|
|
@@ -163,10 +163,9 @@ def split_too_many_tabs_to_run_in_sequential_sessions(layout_tabs: list[TabConfi
|
|
|
163
163
|
|
|
164
164
|
|
|
165
165
|
def split_too_many_layouts_to_run_in_sequential_sessions(layouts: list[LayoutConfig], every: int):
|
|
166
|
-
from machineconfig.utils.accessories import
|
|
166
|
+
from machineconfig.utils.accessories import split_list
|
|
167
167
|
from machineconfig.cluster.sessions_managers.zellij_local_manager import ZellijLocalManager
|
|
168
|
-
|
|
169
|
-
for _idx, layout_chunk in enumerate(split(layouts, every=every)):
|
|
168
|
+
for _idx, layout_chunk in enumerate(split_list(layouts, every=every)):
|
|
170
169
|
manager = ZellijLocalManager(session_layouts=layout_chunk)
|
|
171
170
|
manager.start_all_sessions(poll_interval=2, poll_seconds=2)
|
|
172
171
|
manager.run_monitoring_routine(wait_ms=2000)
|
|
@@ -10,34 +10,39 @@ if TYPE_CHECKING:
|
|
|
10
10
|
from machineconfig.scripts.python.fire_jobs_args_helper import FireJobArgs
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def select_layout(layouts_json_file: Path,
|
|
13
|
+
def select_layout(layouts_json_file: Path, layouts_name: Optional[list[str]]) -> list[LayoutConfig]:
|
|
14
14
|
import json
|
|
15
|
-
|
|
16
15
|
layout_file: LayoutsFile = json.loads(layouts_json_file.read_text(encoding="utf-8"))
|
|
17
16
|
if len(layout_file["layouts"]) == 0:
|
|
18
17
|
raise ValueError(f"No layouts found in {layouts_json_file}")
|
|
19
|
-
if
|
|
18
|
+
if layouts_name is None:
|
|
20
19
|
options = [layout["layoutName"] for layout in layout_file["layouts"]]
|
|
21
20
|
from machineconfig.utils.options import choose_from_options
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
21
|
+
layouts_name = choose_from_options(multi=True, options=options, prompt="Choose a layout configuration:", fzf=True, msg="Choose one option")
|
|
22
|
+
print(f"Selected layout(s): {layouts_name}")
|
|
23
|
+
# layout_chosen = next((layout for layout in layout_file["layouts"] if layout["layoutName"] == layouts_name), None)
|
|
24
|
+
# if layout_chosen is None:
|
|
25
|
+
# layout_chosen = next((layout for layout in layout_file["layouts"] if layout["layoutName"].lower() == layouts_name.lower()), None)
|
|
26
|
+
# if layout_chosen is None:
|
|
27
|
+
# available_layouts = [layout["layoutName"] for layout in layout_file["layouts"]]
|
|
28
|
+
# raise ValueError(f"Layout '{layouts_name}' not found. Available layouts: {available_layouts}")
|
|
29
|
+
layouts_chosen: list[LayoutConfig] = []
|
|
30
|
+
for name in layouts_name:
|
|
31
|
+
layout_chosen = next((layout for layout in layout_file["layouts"] if layout["layoutName"] == name), None)
|
|
32
|
+
if layout_chosen is None:
|
|
33
|
+
layout_chosen = next((layout for layout in layout_file["layouts"] if layout["layoutName"].lower() == name.lower()), None)
|
|
34
|
+
if layout_chosen is None:
|
|
35
|
+
available_layouts = [layout["layoutName"] for layout in layout_file["layouts"]]
|
|
36
|
+
raise ValueError(f"Layout '{name}' not found. Available layouts: {available_layouts}")
|
|
37
|
+
layouts_chosen.append(layout_chosen)
|
|
38
|
+
return layouts_chosen
|
|
32
39
|
|
|
33
40
|
|
|
34
41
|
def launch_layout(layout_config: LayoutConfig) -> Optional[Exception]:
|
|
35
42
|
import platform
|
|
36
|
-
|
|
37
43
|
if platform.system() == "Linux" or platform.system() == "Darwin":
|
|
38
44
|
print("🧑💻 Launching layout using Zellij terminal multiplexer...")
|
|
39
45
|
from machineconfig.cluster.sessions_managers.zellij_local import run_zellij_layout
|
|
40
|
-
|
|
41
46
|
run_zellij_layout(layout_config=layout_config)
|
|
42
47
|
elif platform.system() == "Windows":
|
|
43
48
|
print("🧑💻 Launching layout using Windows Terminal...")
|
|
@@ -63,4 +68,7 @@ def handle_layout_args(args: "FireJobArgs") -> None:
|
|
|
63
68
|
choice_file = PathExtended(choice_file)
|
|
64
69
|
else:
|
|
65
70
|
choice_file = path_obj
|
|
66
|
-
|
|
71
|
+
if args.function is None: layouts_name = None
|
|
72
|
+
else: layouts_name = args.function.split(",")
|
|
73
|
+
for a_layout_config in select_layout(layouts_json_file=choice_file, layouts_name=layouts_name):
|
|
74
|
+
launch_layout(layout_config=a_layout_config)
|
|
@@ -8,80 +8,13 @@ in the event that username@github.com is not mentioned in the remote url.
|
|
|
8
8
|
from machineconfig.utils.io import read_ini
|
|
9
9
|
from machineconfig.utils.source_of_truth import CONFIG_PATH, DEFAULTS_PATH
|
|
10
10
|
from machineconfig.utils.path_extended import PathExtended as PathExtended
|
|
11
|
-
from machineconfig.utils.accessories import randstr
|
|
12
|
-
from machineconfig.scripts.python.repos_helper_update import update_repository
|
|
13
11
|
from machineconfig.scripts.python.repos_helper_record import main as record_repos
|
|
14
12
|
from machineconfig.scripts.python.repos_helper_clone import clone_repos
|
|
13
|
+
from machineconfig.scripts.python.repos_helper_action import perform_git_operations
|
|
15
14
|
|
|
16
15
|
import typer
|
|
17
|
-
from enum import Enum
|
|
18
16
|
from typing import Annotated, Optional
|
|
19
17
|
|
|
20
|
-
from rich import print as pprint
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class GitAction(Enum):
|
|
24
|
-
commit = "commit"
|
|
25
|
-
push = "push"
|
|
26
|
-
pull = "pull"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None, r: bool = False, auto_sync: bool = True) -> bool:
|
|
30
|
-
"""Perform git actions using Python instead of shell scripts. Returns True if successful."""
|
|
31
|
-
from git.exc import InvalidGitRepositoryError
|
|
32
|
-
from git.repo import Repo
|
|
33
|
-
|
|
34
|
-
try:
|
|
35
|
-
repo = Repo(str(path), search_parent_directories=False)
|
|
36
|
-
except InvalidGitRepositoryError:
|
|
37
|
-
pprint(f"⚠️ Skipping {path} because it is not a git repository.")
|
|
38
|
-
if r:
|
|
39
|
-
results = [git_action(path=sub_path, action=action, mess=mess, r=r, auto_sync=auto_sync) for sub_path in path.search()]
|
|
40
|
-
return all(results) # Return True only if all recursive operations succeeded
|
|
41
|
-
else:
|
|
42
|
-
return False
|
|
43
|
-
|
|
44
|
-
print(f">>>>>>>>> 🔧{action} - {path}")
|
|
45
|
-
|
|
46
|
-
try:
|
|
47
|
-
if action == GitAction.commit:
|
|
48
|
-
if mess is None:
|
|
49
|
-
mess = "auto_commit_" + randstr()
|
|
50
|
-
|
|
51
|
-
# Check if there are changes to commit
|
|
52
|
-
if repo.is_dirty() or repo.untracked_files:
|
|
53
|
-
repo.git.add(A=True) # Stage all changes
|
|
54
|
-
repo.index.commit(mess)
|
|
55
|
-
print(f"✅ Committed changes with message: {mess}")
|
|
56
|
-
return True
|
|
57
|
-
else:
|
|
58
|
-
print("ℹ️ No changes to commit")
|
|
59
|
-
return True
|
|
60
|
-
|
|
61
|
-
elif action == GitAction.push:
|
|
62
|
-
success = True
|
|
63
|
-
for remote in repo.remotes:
|
|
64
|
-
try:
|
|
65
|
-
print(f"🚀 Pushing to {remote.url}")
|
|
66
|
-
remote.push(repo.active_branch.name)
|
|
67
|
-
print(f"✅ Pushed to {remote.name}")
|
|
68
|
-
except Exception as e:
|
|
69
|
-
print(f"❌ Failed to push to {remote.name}: {e}")
|
|
70
|
-
success = False
|
|
71
|
-
return success
|
|
72
|
-
|
|
73
|
-
elif action == GitAction.pull:
|
|
74
|
-
# Use the enhanced update function with uv sync support
|
|
75
|
-
update_repository(repo, auto_sync=auto_sync, allow_password_prompt=False)
|
|
76
|
-
print("✅ Pull completed")
|
|
77
|
-
return True
|
|
78
|
-
|
|
79
|
-
except Exception as e:
|
|
80
|
-
print(f"❌ Error performing {action} on {path}: {e}")
|
|
81
|
-
return False
|
|
82
|
-
|
|
83
|
-
return True
|
|
84
|
-
|
|
85
18
|
|
|
86
19
|
def main(
|
|
87
20
|
directory: Annotated[str, typer.Argument(help="📁 Folder containing repos to record or a specs JSON file to follow.")] = "",
|
|
@@ -105,9 +38,7 @@ def main(
|
|
|
105
38
|
repos_root = PathExtended.home().joinpath("code") # it is a positional argument, can never be empty.
|
|
106
39
|
else:
|
|
107
40
|
repos_root = PathExtended(directory).expanduser().absolute()
|
|
108
|
-
|
|
109
41
|
auto_sync = not no_sync # Enable auto sync by default, disable with --no-sync
|
|
110
|
-
|
|
111
42
|
if record:
|
|
112
43
|
save_path = record_repos(repos_root=repos_root)
|
|
113
44
|
if cloud is not None:
|
|
@@ -115,7 +46,6 @@ def main(
|
|
|
115
46
|
|
|
116
47
|
elif clone or checkout or checkout_to_branch:
|
|
117
48
|
print("\n📥 Cloning or checking out repositories...")
|
|
118
|
-
print(">>>>>>>>> Cloning Repos")
|
|
119
49
|
if not repos_root.exists() or repos_root.name != "repos.json":
|
|
120
50
|
repos_root = PathExtended(CONFIG_PATH).joinpath("repos").joinpath(repos_root.rel2home()).joinpath("repos.json")
|
|
121
51
|
if not repos_root.exists():
|
|
@@ -130,23 +60,15 @@ def main(
|
|
|
130
60
|
clone_repos(spec_path=repos_root, preferred_remote=None, checkout_branch_flag=checkout_to_branch, checkout_commit_flag=checkout)
|
|
131
61
|
|
|
132
62
|
elif all or commit or pull or push:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if push or all:
|
|
143
|
-
path_success = git_action(a_path, action=GitAction.push, r=recursive, auto_sync=auto_sync) and path_success
|
|
144
|
-
overall_success = overall_success and path_success
|
|
145
|
-
|
|
146
|
-
if overall_success:
|
|
147
|
-
print("✅ All git operations completed successfully")
|
|
148
|
-
else:
|
|
149
|
-
print("⚠️ Some git operations encountered issues")
|
|
63
|
+
# Use the new helper function for git operations
|
|
64
|
+
perform_git_operations(
|
|
65
|
+
repos_root=repos_root,
|
|
66
|
+
pull=pull or all,
|
|
67
|
+
commit=commit or all,
|
|
68
|
+
push=push or all,
|
|
69
|
+
recursive=recursive,
|
|
70
|
+
auto_sync=auto_sync
|
|
71
|
+
)
|
|
150
72
|
else:
|
|
151
73
|
print("❌ No action specified. Try passing --push, --pull, --commit, or --all.")
|
|
152
74
|
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
from machineconfig.utils.path_extended import PathExtended as PathExtended
|
|
2
|
+
from machineconfig.utils.accessories import randstr
|
|
3
|
+
from machineconfig.scripts.python.repos_helper_update import update_repository
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from enum import Enum
|
|
8
|
+
|
|
9
|
+
from rich import print as pprint
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GitAction(Enum):
|
|
13
|
+
commit = "commit"
|
|
14
|
+
push = "push"
|
|
15
|
+
pull = "pull"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@dataclass
|
|
19
|
+
class GitOperationResult:
|
|
20
|
+
"""Result of a git operation on a single repository."""
|
|
21
|
+
repo_path: PathExtended
|
|
22
|
+
action: str
|
|
23
|
+
success: bool
|
|
24
|
+
message: str
|
|
25
|
+
is_git_repo: bool = True
|
|
26
|
+
had_changes: bool = False
|
|
27
|
+
remote_count: int = 0
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@dataclass
|
|
31
|
+
class GitOperationSummary:
|
|
32
|
+
"""Summary of all git operations performed."""
|
|
33
|
+
# Basic statistics
|
|
34
|
+
total_paths_processed: int = 0
|
|
35
|
+
git_repos_found: int = 0
|
|
36
|
+
non_git_paths: int = 0
|
|
37
|
+
|
|
38
|
+
# Per-operation statistics
|
|
39
|
+
commits_attempted: int = 0
|
|
40
|
+
commits_successful: int = 0
|
|
41
|
+
commits_no_changes: int = 0
|
|
42
|
+
commits_failed: int = 0
|
|
43
|
+
|
|
44
|
+
pulls_attempted: int = 0
|
|
45
|
+
pulls_successful: int = 0
|
|
46
|
+
pulls_failed: int = 0
|
|
47
|
+
|
|
48
|
+
pushes_attempted: int = 0
|
|
49
|
+
pushes_successful: int = 0
|
|
50
|
+
pushes_failed: int = 0
|
|
51
|
+
|
|
52
|
+
def __post_init__(self):
|
|
53
|
+
self.failed_operations: list[GitOperationResult] = []
|
|
54
|
+
self.repos_without_remotes: list[PathExtended] = []
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None, r: bool = False, auto_sync: bool = True) -> GitOperationResult:
|
|
58
|
+
"""Perform git actions using Python instead of shell scripts. Returns detailed operation result."""
|
|
59
|
+
from git.exc import InvalidGitRepositoryError
|
|
60
|
+
from git.repo import Repo
|
|
61
|
+
|
|
62
|
+
try:
|
|
63
|
+
repo = Repo(str(path), search_parent_directories=False)
|
|
64
|
+
except InvalidGitRepositoryError:
|
|
65
|
+
pprint(f"⚠️ Skipping {path} because it is not a git repository.")
|
|
66
|
+
if r:
|
|
67
|
+
results = [git_action(path=sub_path, action=action, mess=mess, r=r, auto_sync=auto_sync) for sub_path in path.search()]
|
|
68
|
+
# For recursive calls, we need to aggregate results somehow
|
|
69
|
+
# For now, return success if all recursive operations succeeded
|
|
70
|
+
all_successful = all(result.success for result in results)
|
|
71
|
+
return GitOperationResult(
|
|
72
|
+
repo_path=path,
|
|
73
|
+
action=action.value,
|
|
74
|
+
success=all_successful,
|
|
75
|
+
message=f"Recursive operation: {len([r for r in results if r.success])}/{len(results)} succeeded",
|
|
76
|
+
is_git_repo=False
|
|
77
|
+
)
|
|
78
|
+
else:
|
|
79
|
+
return GitOperationResult(
|
|
80
|
+
repo_path=path,
|
|
81
|
+
action=action.value,
|
|
82
|
+
success=False,
|
|
83
|
+
message="Not a git repository",
|
|
84
|
+
is_git_repo=False
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
print(f">>>>>>>>> 🔧{action} - {path}")
|
|
88
|
+
remote_count = len(repo.remotes)
|
|
89
|
+
|
|
90
|
+
try:
|
|
91
|
+
if action == GitAction.commit:
|
|
92
|
+
if mess is None:
|
|
93
|
+
mess = "auto_commit_" + randstr()
|
|
94
|
+
|
|
95
|
+
# Check if there are changes to commit
|
|
96
|
+
if repo.is_dirty() or repo.untracked_files:
|
|
97
|
+
repo.git.add(A=True) # Stage all changes
|
|
98
|
+
repo.index.commit(mess)
|
|
99
|
+
print(f"✅ Committed changes with message: {mess}")
|
|
100
|
+
return GitOperationResult(
|
|
101
|
+
repo_path=path,
|
|
102
|
+
action=action.value,
|
|
103
|
+
success=True,
|
|
104
|
+
message=f"Committed changes with message: {mess}",
|
|
105
|
+
had_changes=True,
|
|
106
|
+
remote_count=remote_count
|
|
107
|
+
)
|
|
108
|
+
else:
|
|
109
|
+
print("ℹ️ No changes to commit")
|
|
110
|
+
return GitOperationResult(
|
|
111
|
+
repo_path=path,
|
|
112
|
+
action=action.value,
|
|
113
|
+
success=True,
|
|
114
|
+
message="No changes to commit",
|
|
115
|
+
had_changes=False,
|
|
116
|
+
remote_count=remote_count
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
elif action == GitAction.push:
|
|
120
|
+
if not repo.remotes:
|
|
121
|
+
print("⚠️ No remotes configured for push")
|
|
122
|
+
return GitOperationResult(
|
|
123
|
+
repo_path=path,
|
|
124
|
+
action=action.value,
|
|
125
|
+
success=False,
|
|
126
|
+
message="No remotes configured",
|
|
127
|
+
remote_count=0
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
success = True
|
|
131
|
+
failed_remotes = []
|
|
132
|
+
for remote in repo.remotes:
|
|
133
|
+
try:
|
|
134
|
+
print(f"🚀 Pushing to {remote.url}")
|
|
135
|
+
remote.push(repo.active_branch.name)
|
|
136
|
+
print(f"✅ Pushed to {remote.name}")
|
|
137
|
+
except Exception as e:
|
|
138
|
+
print(f"❌ Failed to push to {remote.name}: {e}")
|
|
139
|
+
failed_remotes.append(f"{remote.name}: {str(e)}")
|
|
140
|
+
success = False
|
|
141
|
+
|
|
142
|
+
message = "Push successful" if success else f"Push failed for: {', '.join(failed_remotes)}"
|
|
143
|
+
return GitOperationResult(
|
|
144
|
+
repo_path=path,
|
|
145
|
+
action=action.value,
|
|
146
|
+
success=success,
|
|
147
|
+
message=message,
|
|
148
|
+
remote_count=remote_count
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
elif action == GitAction.pull:
|
|
152
|
+
# Use the enhanced update function with uv sync support
|
|
153
|
+
try:
|
|
154
|
+
update_repository(repo, auto_sync=auto_sync, allow_password_prompt=False)
|
|
155
|
+
print("✅ Pull completed")
|
|
156
|
+
return GitOperationResult(
|
|
157
|
+
repo_path=path,
|
|
158
|
+
action=action.value,
|
|
159
|
+
success=True,
|
|
160
|
+
message="Pull completed successfully",
|
|
161
|
+
remote_count=remote_count
|
|
162
|
+
)
|
|
163
|
+
except Exception as e:
|
|
164
|
+
print(f"❌ Pull failed: {e}")
|
|
165
|
+
return GitOperationResult(
|
|
166
|
+
repo_path=path,
|
|
167
|
+
action=action.value,
|
|
168
|
+
success=False,
|
|
169
|
+
message=f"Pull failed: {str(e)}",
|
|
170
|
+
remote_count=remote_count
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
except Exception as e:
|
|
174
|
+
print(f"❌ Error performing {action} on {path}: {e}")
|
|
175
|
+
return GitOperationResult(
|
|
176
|
+
repo_path=path,
|
|
177
|
+
action=action.value,
|
|
178
|
+
success=False,
|
|
179
|
+
message=f"Error: {str(e)}",
|
|
180
|
+
remote_count=remote_count
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
# This should never be reached, but just in case
|
|
184
|
+
return GitOperationResult(
|
|
185
|
+
repo_path=path,
|
|
186
|
+
action=action.value,
|
|
187
|
+
success=False,
|
|
188
|
+
message="Unknown error",
|
|
189
|
+
remote_count=remote_count
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def print_git_operations_summary(summary: GitOperationSummary, operations_performed: list[str]) -> None:
|
|
194
|
+
"""Print a detailed summary of git operations similar to repos_helper_record.py."""
|
|
195
|
+
print("\n📊 Git Operations Summary:")
|
|
196
|
+
print(f" Total paths processed: {summary.total_paths_processed}")
|
|
197
|
+
print(f" Git repositories found: {summary.git_repos_found}")
|
|
198
|
+
print(f" Non-git paths skipped: {summary.non_git_paths}")
|
|
199
|
+
|
|
200
|
+
# Show per-operation statistics
|
|
201
|
+
if "commit" in operations_performed:
|
|
202
|
+
print("\n💾 Commit Operations:")
|
|
203
|
+
print(f" Attempted: {summary.commits_attempted}")
|
|
204
|
+
print(f" Successful: {summary.commits_successful}")
|
|
205
|
+
print(f" No changes: {summary.commits_no_changes}")
|
|
206
|
+
print(f" Failed: {summary.commits_failed}")
|
|
207
|
+
|
|
208
|
+
if "pull" in operations_performed:
|
|
209
|
+
print("\n⬇️ Pull Operations:")
|
|
210
|
+
print(f" Attempted: {summary.pulls_attempted}")
|
|
211
|
+
print(f" Successful: {summary.pulls_successful}")
|
|
212
|
+
print(f" Failed: {summary.pulls_failed}")
|
|
213
|
+
|
|
214
|
+
if "push" in operations_performed:
|
|
215
|
+
print("\n🚀 Push Operations:")
|
|
216
|
+
print(f" Attempted: {summary.pushes_attempted}")
|
|
217
|
+
print(f" Successful: {summary.pushes_successful}")
|
|
218
|
+
print(f" Failed: {summary.pushes_failed}")
|
|
219
|
+
|
|
220
|
+
# Show repositories without remotes (important for push operations)
|
|
221
|
+
if summary.repos_without_remotes:
|
|
222
|
+
print(f"\n⚠️ WARNING: {len(summary.repos_without_remotes)} repositories have no remote configurations:")
|
|
223
|
+
for repo_path in summary.repos_without_remotes:
|
|
224
|
+
print(f" • {repo_path.name} ({repo_path})")
|
|
225
|
+
print(" These repositories cannot be pushed to remote servers.")
|
|
226
|
+
else:
|
|
227
|
+
if "push" in operations_performed:
|
|
228
|
+
print("\n✅ All repositories have remote configurations.")
|
|
229
|
+
|
|
230
|
+
# Show failed operations
|
|
231
|
+
if summary.failed_operations:
|
|
232
|
+
print(f"\n❌ FAILED OPERATIONS ({len(summary.failed_operations)} total):")
|
|
233
|
+
|
|
234
|
+
# Group failed operations by type
|
|
235
|
+
failed_by_action = {}
|
|
236
|
+
for failed_op in summary.failed_operations:
|
|
237
|
+
if failed_op.action not in failed_by_action:
|
|
238
|
+
failed_by_action[failed_op.action] = []
|
|
239
|
+
failed_by_action[failed_op.action].append(failed_op)
|
|
240
|
+
|
|
241
|
+
for action, failures in failed_by_action.items():
|
|
242
|
+
print(f"\n {action.upper()} failures ({len(failures)}):")
|
|
243
|
+
for failure in failures:
|
|
244
|
+
if not failure.is_git_repo:
|
|
245
|
+
print(f" • {failure.repo_path.name} ({failure.repo_path}) - Not a git repository")
|
|
246
|
+
else:
|
|
247
|
+
print(f" • {failure.repo_path.name} ({failure.repo_path}) - {failure.message}")
|
|
248
|
+
else:
|
|
249
|
+
print("\n✅ All git operations completed successfully!")
|
|
250
|
+
|
|
251
|
+
# Overall success assessment
|
|
252
|
+
total_failed = len(summary.failed_operations)
|
|
253
|
+
total_operations = (summary.commits_attempted + summary.pulls_attempted +
|
|
254
|
+
summary.pushes_attempted)
|
|
255
|
+
|
|
256
|
+
if total_failed == 0 and total_operations > 0:
|
|
257
|
+
print(f"\n🎉 SUCCESS: All {total_operations} operations completed successfully!")
|
|
258
|
+
elif total_operations == 0:
|
|
259
|
+
print("\n📝 No git operations were performed.")
|
|
260
|
+
else:
|
|
261
|
+
success_rate = ((total_operations - total_failed) / total_operations * 100) if total_operations > 0 else 0
|
|
262
|
+
print(f"\n⚖️ SUMMARY: {total_operations - total_failed}/{total_operations} operations succeeded ({success_rate:.1f}% success rate)")
|
|
263
|
+
if total_failed > 0:
|
|
264
|
+
print(" Review the failed operations above for details on what needs attention.")
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, push: bool, recursive: bool, auto_sync: bool) -> None:
|
|
268
|
+
"""Perform git operations on all repositories and provide detailed summary."""
|
|
269
|
+
print(f"\n🔄 Performing Git actions on repositories @ `{repos_root}`...")
|
|
270
|
+
|
|
271
|
+
# Initialize summary tracking
|
|
272
|
+
summary = GitOperationSummary()
|
|
273
|
+
operations_performed = []
|
|
274
|
+
|
|
275
|
+
# Determine which operations to perform
|
|
276
|
+
if pull:
|
|
277
|
+
operations_performed.append("pull")
|
|
278
|
+
if commit:
|
|
279
|
+
operations_performed.append("commit")
|
|
280
|
+
if push:
|
|
281
|
+
operations_performed.append("push")
|
|
282
|
+
|
|
283
|
+
for a_path in repos_root.search("*"):
|
|
284
|
+
print(f"{('Handling ' + str(a_path)).center(80, '-')}")
|
|
285
|
+
summary.total_paths_processed += 1
|
|
286
|
+
|
|
287
|
+
# Check if this is a git repository first
|
|
288
|
+
from git.exc import InvalidGitRepositoryError
|
|
289
|
+
from git.repo import Repo
|
|
290
|
+
|
|
291
|
+
try:
|
|
292
|
+
repo = Repo(str(a_path), search_parent_directories=False)
|
|
293
|
+
summary.git_repos_found += 1
|
|
294
|
+
|
|
295
|
+
# Track repos without remotes
|
|
296
|
+
if len(repo.remotes) == 0:
|
|
297
|
+
summary.repos_without_remotes.append(a_path)
|
|
298
|
+
|
|
299
|
+
# Now perform the actual operations
|
|
300
|
+
if pull:
|
|
301
|
+
result = git_action(path=a_path, action=GitAction.pull, r=recursive, auto_sync=auto_sync)
|
|
302
|
+
summary.pulls_attempted += 1
|
|
303
|
+
if result.success:
|
|
304
|
+
summary.pulls_successful += 1
|
|
305
|
+
else:
|
|
306
|
+
summary.pulls_failed += 1
|
|
307
|
+
summary.failed_operations.append(result)
|
|
308
|
+
|
|
309
|
+
if commit:
|
|
310
|
+
result = git_action(a_path, action=GitAction.commit, r=recursive, auto_sync=auto_sync)
|
|
311
|
+
summary.commits_attempted += 1
|
|
312
|
+
if result.success:
|
|
313
|
+
if result.had_changes:
|
|
314
|
+
summary.commits_successful += 1
|
|
315
|
+
else:
|
|
316
|
+
summary.commits_no_changes += 1
|
|
317
|
+
else:
|
|
318
|
+
summary.commits_failed += 1
|
|
319
|
+
summary.failed_operations.append(result)
|
|
320
|
+
|
|
321
|
+
if push:
|
|
322
|
+
result = git_action(a_path, action=GitAction.push, r=recursive, auto_sync=auto_sync)
|
|
323
|
+
summary.pushes_attempted += 1
|
|
324
|
+
if result.success:
|
|
325
|
+
summary.pushes_successful += 1
|
|
326
|
+
else:
|
|
327
|
+
summary.pushes_failed += 1
|
|
328
|
+
summary.failed_operations.append(result)
|
|
329
|
+
|
|
330
|
+
except InvalidGitRepositoryError:
|
|
331
|
+
summary.non_git_paths += 1
|
|
332
|
+
pprint(f"⚠️ Skipping {a_path} because it is not a git repository.")
|
|
333
|
+
|
|
334
|
+
# Print the detailed summary
|
|
335
|
+
print_git_operations_summary(summary, operations_performed)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
import typer
|
|
3
|
-
|
|
3
|
+
from typing import Annotated
|
|
4
4
|
|
|
5
5
|
def func(name: str):
|
|
6
6
|
print(f"Hello, {name}! from func")
|
|
7
7
|
|
|
8
|
-
def hello(name: str):
|
|
8
|
+
def hello(*, name: Annotated[str, typer.Option(..., help="Name to greet")]):
|
|
9
9
|
print(f"Hello, {name}!")
|
|
10
10
|
|
|
11
11
|
def main():
|
|
@@ -13,4 +13,5 @@ def main():
|
|
|
13
13
|
|
|
14
14
|
if __name__ == "__main__":
|
|
15
15
|
# typer.run(hello)
|
|
16
|
+
main()
|
|
16
17
|
pass
|