machineconfig 6.36__tar.gz → 6.38__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-6.36/src/machineconfig.egg-info → machineconfig-6.38}/PKG-INFO +1 -1
- {machineconfig-6.36 → machineconfig-6.38}/pyproject.toml +2 -2
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud.py +5 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_sync.py +4 -4
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell.py +18 -6
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops.py +4 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_nw.py +3 -3
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_repos.py +5 -5
- machineconfig-6.38/src/machineconfig/scripts/python/devops_helpers/cli_utils.py +79 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/action.py +6 -6
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/entrypoint.py +1 -2
- machineconfig-6.38/src/machineconfig/utils/files/art/fat_croco.txt +10 -0
- machineconfig-6.38/src/machineconfig/utils/files/art/halfwit_croco.txt +9 -0
- machineconfig-6.38/src/machineconfig/utils/files/art/happy_croco.txt +22 -0
- machineconfig-6.38/src/machineconfig/utils/files/art/water_croco.txt +11 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/headers.py +4 -10
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/installer_abc.py +3 -2
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/scheduler.py +61 -25
- {machineconfig-6.36 → machineconfig-6.38/src/machineconfig.egg-info}/PKG-INFO +1 -1
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/SOURCES.txt +5 -0
- {machineconfig-6.36 → machineconfig-6.38}/MANIFEST.in +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/README.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/setup.cfg +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/distribute.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/file_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/job_params.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/run_remote.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/script_execution.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/templates/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/check_installations.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/installer_data.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/package_groups.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/python/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/python/vscode/api.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/logger.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/backup.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_links.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_links_export.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/create_shell_profile.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/mapper.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/generic/shares.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzf2g +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzfag +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzffg +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzfg +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/fzfrga +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/share_smb +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/start_docker +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/skrg +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/linux/z_ls +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/agents.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/initai.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ai/vscode_tasks.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_copy.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_helpers.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/cloud_mount.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/helpers2.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/cloud_helpers/helpers5.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/pomodoro.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/scheduler.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/start_slidev.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/viewer.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/croshell_helpers/viewer_template.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_config.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_data.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_self.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_share_server.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_terminal.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/devops_status.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/devops_update_repos.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/themes/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/themes/choose_pwsh_theme.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/themes/choose_wezterm_theme.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/entry.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/ftpx.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/command_builder.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/command_detail.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/command_tree.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/data_models.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/main_app.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helper_navigator/search_bar.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_cursor_agents.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/helpers4.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/template.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire/template.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/interactive.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/add_ssh_key.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nfs +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/clone.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/count_lines.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/record.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/sync.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/update.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/sessions.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/sessions_helpers/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/sessions_helpers/sessions_multiprocess.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/broot/br.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/broot/conf.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/glow/glow.yml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/helix/config.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/helix/languages.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keras/keras.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/colors +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/icons +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/linux/lfrc +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/colors +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/icons +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/lfrc +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.flake8 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.mypy.ini +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.pylintrc +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/linters/.ruff.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/mprocs/windows/other +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/pistol/pistol.conf +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/presenterm/config.yaml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/procs/.procs.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/rofi/config.rasi +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/bash/init.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/shells/wt/settings.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/streamlit/config.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/svim/linux/init.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/svim/windows/init.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tere/terecd.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/wsl/.wslconfig +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/yazi/keymap.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/yazi/theme.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/yazi/yazi.toml +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zed/settings.json +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/commands/monitor +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/config.kdl +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/hist +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/apps.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/uv.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/apps.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/uv.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/accessories.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ai/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/code.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/ascii_art.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/dbms.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/files/read.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/installer.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/io.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/links.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/meta.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/notifications.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/options.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/path_extended.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/path_helper.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/procs.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/scheduling.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/source_of_truth.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ssh.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/terminal.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/tst.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/upgrade_packages.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/ve.py +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/dependency_links.txt +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/entry_points.txt +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/requires.txt +0 -0
- {machineconfig-6.36 → machineconfig-6.38}/src/machineconfig.egg-info/top_level.txt +0 -0
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "machineconfig"
|
|
9
|
-
version = "6.
|
|
9
|
+
version = "6.38"
|
|
10
10
|
description = "Dotfiles management package"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = {text = "Apache 2.0"}
|
|
@@ -79,7 +79,7 @@ license-files = []
|
|
|
79
79
|
where = ["src"]
|
|
80
80
|
|
|
81
81
|
[tool.setuptools.package-data]
|
|
82
|
-
machineconfig = ["**/*.toml", "**/*.md", "**/*.sh", "**/*.ps1"]
|
|
82
|
+
machineconfig = ["**/*.toml", "**/*.md", "**/*.sh", "**/*.ps1", "**/*.txt"]
|
|
83
83
|
|
|
84
84
|
[dependency-groups]
|
|
85
85
|
dev = [
|
|
@@ -73,8 +73,8 @@ def main(
|
|
|
73
73
|
cmd_line = f"{rclone_cmd[:65]}..."
|
|
74
74
|
console.print(Panel(f"{title}\n{cmd_line}", title="[bold blue]Command[/bold blue]", expand=False))
|
|
75
75
|
|
|
76
|
-
#
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
# import subprocess
|
|
77
|
+
# subprocess.run(txt, shell=True, check=True)
|
|
78
|
+
from machineconfig.utils.code import run_shell_script
|
|
79
|
+
run_shell_script(txt)
|
|
80
80
|
|
|
@@ -10,9 +10,10 @@ from machineconfig.utils.path_extended import PathExtended
|
|
|
10
10
|
from machineconfig.utils.accessories import randstr
|
|
11
11
|
|
|
12
12
|
from machineconfig.utils.options import choose_from_options
|
|
13
|
-
# from machineconfig.utils.ve import get_ve_activate_line
|
|
14
13
|
from rich.console import Console
|
|
15
14
|
from rich.panel import Panel
|
|
15
|
+
# from machineconfig.utils.ve import get_ve_path_and_ipython_profile
|
|
16
|
+
# from pathlib import Path
|
|
16
17
|
# from rich.text import Text
|
|
17
18
|
|
|
18
19
|
console = Console()
|
|
@@ -63,10 +64,11 @@ except Exception as e:
|
|
|
63
64
|
|
|
64
65
|
|
|
65
66
|
def croshell(
|
|
66
|
-
path: Annotated[Optional[str], typer.Argument(help="
|
|
67
|
+
path: Annotated[Optional[str], typer.Argument(help="path of file to read.")] = "",
|
|
67
68
|
python: Annotated[bool, typer.Option("--python", "-p", help="flag to use python over IPython.")] = False,
|
|
68
69
|
profile: Annotated[Optional[str], typer.Option("--profile", "-P", help="ipython profile to use, defaults to default profile.")] = None,
|
|
69
70
|
jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
|
|
71
|
+
vscode: Annotated[bool, typer.Option("--vscode", "-c", help="open the script in vscode")] = False,
|
|
70
72
|
streamlit_viewer: Annotated[bool, typer.Option("--stViewer", "-s", help="view in streamlit app")] = False,
|
|
71
73
|
visidata: Annotated[bool, typer.Option("--visidata", "-V", help="open data file in visidata")] = False,
|
|
72
74
|
local: Annotated[bool, typer.Option("--local", "-l", help="run in local mode, not in virtual env.")]= False,
|
|
@@ -104,7 +106,6 @@ def croshell(
|
|
|
104
106
|
program = get_read_data_pycode(str(file_obj))
|
|
105
107
|
text = f"📄 Reading data from: {file_obj.name}"
|
|
106
108
|
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
107
|
-
|
|
108
109
|
else: # if nothing is specified, then run in interactive mode.
|
|
109
110
|
text = "⌨️ Entering interactive mode"
|
|
110
111
|
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
@@ -124,7 +125,7 @@ from pathlib import Path
|
|
|
124
125
|
|
|
125
126
|
"""
|
|
126
127
|
|
|
127
|
-
pyfile = PathExtended.tmp().joinpath(f"tmp_scripts/python/croshell/{randstr()}.py")
|
|
128
|
+
pyfile = PathExtended.tmp().joinpath(f"tmp_scripts/python/croshell/{randstr()}/script.py")
|
|
128
129
|
pyfile.parent.mkdir(parents=True, exist_ok=True)
|
|
129
130
|
|
|
130
131
|
title = "Reading Data"
|
|
@@ -137,7 +138,16 @@ from pathlib import Path
|
|
|
137
138
|
if visidata:
|
|
138
139
|
fire_line = f"uv run --with visidata,pyarrow vd {str(file_obj)}"
|
|
139
140
|
elif jupyter:
|
|
140
|
-
fire_line = f"
|
|
141
|
+
fire_line = f"uv run --with 'machineconfig[plot]>=6.36' jupyter-lab {str(pyfile)}"
|
|
142
|
+
elif vscode:
|
|
143
|
+
fire_line = f"""
|
|
144
|
+
cd {str(pyfile.parent)}
|
|
145
|
+
uv init --python 3.14
|
|
146
|
+
uv venv
|
|
147
|
+
uv add "machineconfig[plot]>=6.36"
|
|
148
|
+
# code serve-web
|
|
149
|
+
code --new-window {str(pyfile)}
|
|
150
|
+
"""
|
|
141
151
|
else:
|
|
142
152
|
if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
|
|
143
153
|
else: profile = ""
|
|
@@ -150,7 +160,9 @@ from pathlib import Path
|
|
|
150
160
|
console.print(Panel("❌ Could not determine the local machineconfig repo root. Please ensure the `REPO_ROOT` in `source_of_truth.py` is correctly set to the local path of the machineconfig repo, or do not use the `--local` flag.", title="Error", border_style="red"))
|
|
151
161
|
return
|
|
152
162
|
else: ve_line = """--with "machineconfig[plot]>=6.36" """
|
|
153
|
-
|
|
163
|
+
# ve_path_maybe, ipython_profile_maybe = get_ve_path_and_ipython_profile(Path.cwd())
|
|
164
|
+
# --python 3.14
|
|
165
|
+
fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
|
|
154
166
|
|
|
155
167
|
from machineconfig.utils.code import run_shell_script
|
|
156
168
|
run_shell_script(fire_line, clean_env=False)
|
|
@@ -8,6 +8,7 @@ import machineconfig.scripts.python.devops_helpers.cli_config as cli_config
|
|
|
8
8
|
import machineconfig.scripts.python.devops_helpers.cli_self as cli_self
|
|
9
9
|
import machineconfig.scripts.python.devops_helpers.cli_data as cli_data
|
|
10
10
|
import machineconfig.scripts.python.devops_helpers.cli_nw as cli_network
|
|
11
|
+
from machineconfig.scripts.python.devops_helpers.cli_utils import get_app as get_app_utils
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
def install(which: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program names to install, or group name if --group flag is set.")] = None,
|
|
@@ -39,6 +40,9 @@ def get_app():
|
|
|
39
40
|
app_nw = cli_network.get_app()
|
|
40
41
|
app.add_typer(app_nw, name="network")
|
|
41
42
|
app.add_typer(app_nw, name="n", hidden=True)
|
|
43
|
+
app_utils = get_app_utils()
|
|
44
|
+
app.add_typer(app_utils, name="utils")
|
|
45
|
+
app.add_typer(app_utils, name="u", hidden=True)
|
|
42
46
|
return app
|
|
43
47
|
|
|
44
48
|
def main():
|
{machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/devops_helpers/cli_nw.py
RENAMED
|
@@ -64,9 +64,9 @@ def get_app():
|
|
|
64
64
|
nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
|
|
65
65
|
nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
|
|
66
66
|
nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True, no_args_is_help=True)(add_ssh_key)
|
|
67
|
-
nw_apps.command(name="add-ssh-identity", help="🗝️ [
|
|
68
|
-
nw_apps.command(name="
|
|
69
|
-
nw_apps.command(name="show-address", help="[
|
|
67
|
+
nw_apps.command(name="add-ssh-identity", help="🗝️ [A] Add SSH identity (private key) to this machine")(add_ssh_identity)
|
|
68
|
+
nw_apps.command(name="A", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
|
|
69
|
+
nw_apps.command(name="show-address", help="📌 [a] Show this computer addresses on network")(show_address)
|
|
70
70
|
nw_apps.command(name="a", help="Show this computer addresses on network", hidden=True)(show_address)
|
|
71
71
|
nw_apps.command(name="debug-ssh", help="🐛 [d] Debug SSH connection")(debug_ssh)
|
|
72
72
|
nw_apps.command(name="d", help="Debug SSH connection", hidden=True)(debug_ssh)
|
|
@@ -20,27 +20,27 @@ CloudOption = Annotated[Optional[str], typer.Option("--cloud", "-c", help="☁
|
|
|
20
20
|
def push(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
|
|
21
21
|
"""🚀 Push changes across repositories."""
|
|
22
22
|
from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
|
|
23
|
-
git_operations(directory, pull=False, commit=False, push=True, recursive=recursive,
|
|
23
|
+
git_operations(directory, pull=False, commit=False, push=True, recursive=recursive, auto_uv_sync=not no_sync)
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
def pull(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
|
|
27
27
|
"""⬇️ Pull changes across repositories."""
|
|
28
28
|
from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
|
|
29
29
|
|
|
30
|
-
git_operations(directory, pull=True, commit=False, push=False, recursive=recursive,
|
|
30
|
+
git_operations(directory, pull=True, commit=False, push=False, recursive=recursive, auto_uv_sync=not no_sync)
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
def commit(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
|
|
34
34
|
"""💾 Commit changes across repositories."""
|
|
35
35
|
from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
|
|
36
|
-
|
|
37
|
-
git_operations(directory, pull=False, commit=True, push=False, recursive=recursive, no_sync=no_sync)
|
|
36
|
+
git_operations(directory, pull=False, commit=True, push=False, recursive=recursive, auto_uv_sync=not no_sync)
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
def sync(directory: DirectoryArgument = None, recursive: RecursiveOption = False, no_sync: NoSyncOption = False) -> None:
|
|
41
40
|
"""🔄 Pull, commit, and push changes across repositories."""
|
|
42
41
|
from machineconfig.scripts.python.repos_helpers.entrypoint import git_operations
|
|
43
|
-
|
|
42
|
+
print(f"no_sync is {no_sync}")
|
|
43
|
+
git_operations(directory, pull=True, commit=True, push=True, recursive=recursive, auto_uv_sync=not no_sync)
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
def capture(directory: DirectoryArgument = None, cloud: CloudOption = None) -> None:
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import typer
|
|
4
|
+
from typing import Annotated, Optional
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
import subprocess
|
|
7
|
+
import requests
|
|
8
|
+
|
|
9
|
+
def download(url: Annotated[Optional[str], typer.Argument(..., help="The URL to download the file from." )] = None,
|
|
10
|
+
decompress: Annotated[bool, typer.Option("--decompress", "-d", help="Decompress the file if it's an archive.")] = False,
|
|
11
|
+
output: Annotated[Optional[str], typer.Option("--output", "-o", help="The output file path.")] = None) -> None:
|
|
12
|
+
if url is None:
|
|
13
|
+
typer.echo("❌ Error: URL is required.", err=True)
|
|
14
|
+
raise typer.Exit(code=1)
|
|
15
|
+
|
|
16
|
+
typer.echo(f"📥 Downloading from: {url}")
|
|
17
|
+
|
|
18
|
+
download_path = Path(output) if output else Path(url.split("/")[-1])
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
response = requests.get(url, allow_redirects=True, stream=True, timeout=60)
|
|
22
|
+
response.raise_for_status()
|
|
23
|
+
|
|
24
|
+
total_size = int(response.headers.get('content-length', 0))
|
|
25
|
+
|
|
26
|
+
with open(download_path, 'wb') as f:
|
|
27
|
+
if total_size == 0:
|
|
28
|
+
f.write(response.content)
|
|
29
|
+
else:
|
|
30
|
+
downloaded = 0
|
|
31
|
+
chunk_size = 8192
|
|
32
|
+
for chunk in response.iter_content(chunk_size=chunk_size):
|
|
33
|
+
if chunk:
|
|
34
|
+
f.write(chunk)
|
|
35
|
+
downloaded += len(chunk)
|
|
36
|
+
progress = (downloaded / total_size) * 100
|
|
37
|
+
typer.echo(f"\r⏬ Progress: {progress:.1f}% ({downloaded}/{total_size} bytes)", nl=False)
|
|
38
|
+
typer.echo()
|
|
39
|
+
|
|
40
|
+
typer.echo(f"✅ Downloaded to: {download_path}")
|
|
41
|
+
except requests.exceptions.RequestException as e:
|
|
42
|
+
typer.echo(f"❌ Download failed: {e}", err=True)
|
|
43
|
+
raise typer.Exit(code=1)
|
|
44
|
+
except OSError as e:
|
|
45
|
+
typer.echo(f"❌ File write error: {e}", err=True)
|
|
46
|
+
raise typer.Exit(code=1)
|
|
47
|
+
|
|
48
|
+
if decompress:
|
|
49
|
+
typer.echo(f"📦 Decompressing: {download_path}")
|
|
50
|
+
|
|
51
|
+
output_dir = download_path.parent if output else Path.cwd()
|
|
52
|
+
|
|
53
|
+
try:
|
|
54
|
+
_result = subprocess.run(
|
|
55
|
+
["ouch", "decompress", str(download_path), "--dir", str(output_dir)],
|
|
56
|
+
check=True,
|
|
57
|
+
capture_output=True,
|
|
58
|
+
text=True
|
|
59
|
+
)
|
|
60
|
+
typer.echo(f"✅ Decompressed to: {output_dir}")
|
|
61
|
+
|
|
62
|
+
if download_path.exists():
|
|
63
|
+
download_path.unlink()
|
|
64
|
+
typer.echo(f"🗑️ Removed archive: {download_path}")
|
|
65
|
+
|
|
66
|
+
except subprocess.CalledProcessError as e:
|
|
67
|
+
typer.echo(f"❌ Decompression failed: {e.stderr}", err=True)
|
|
68
|
+
raise typer.Exit(code=1)
|
|
69
|
+
except FileNotFoundError:
|
|
70
|
+
typer.echo("❌ Error: ouch command not found. Please install ouch.", err=True)
|
|
71
|
+
typer.echo("💡 Install with: cargo install ouch", err=True)
|
|
72
|
+
raise typer.Exit(code=1)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def get_app() -> typer.Typer:
|
|
76
|
+
app = typer.Typer(help="🛠️ [u] utilities operations", no_args_is_help=True, add_completion=True)
|
|
77
|
+
app.command(name="download", no_args_is_help=True, help="[d] Download a file from a URL and optionally decompress it.")(download)
|
|
78
|
+
app.command(name="d", no_args_is_help=True, hidden=True)(download)
|
|
79
|
+
return app
|
{machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/scripts/python/repos_helpers/action.py
RENAMED
|
@@ -57,7 +57,7 @@ class GitOperationSummary:
|
|
|
57
57
|
self.repos_without_remotes: list[PathExtended] = []
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
def git_action(path: PathExtended, action: GitAction, mess: Optional[str]
|
|
60
|
+
def git_action(path: PathExtended, action: GitAction, mess: Optional[str], r: bool, auto_uv_sync: bool) -> GitOperationResult:
|
|
61
61
|
"""Perform git actions using Python instead of shell scripts. Returns detailed operation result."""
|
|
62
62
|
from git.exc import InvalidGitRepositoryError
|
|
63
63
|
from git.repo import Repo
|
|
@@ -67,7 +67,7 @@ def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None
|
|
|
67
67
|
except InvalidGitRepositoryError:
|
|
68
68
|
pprint(f"⚠️ Skipping {path} because it is not a git repository.")
|
|
69
69
|
if r:
|
|
70
|
-
results = [git_action(path=sub_path, action=action, mess=mess, r=r,
|
|
70
|
+
results = [git_action(path=sub_path, action=action, mess=mess, r=r, auto_uv_sync=auto_uv_sync) for sub_path in path.search()]
|
|
71
71
|
# For recursive calls, we need to aggregate results somehow
|
|
72
72
|
# For now, return success if all recursive operations succeeded
|
|
73
73
|
all_successful = all(result.success for result in results)
|
|
@@ -154,7 +154,7 @@ def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None
|
|
|
154
154
|
elif action == GitAction.pull:
|
|
155
155
|
# Use the enhanced update function with uv sync support
|
|
156
156
|
try:
|
|
157
|
-
update_repository(repo, auto_uv_sync=
|
|
157
|
+
update_repository(repo, auto_uv_sync=auto_uv_sync, allow_password_prompt=False)
|
|
158
158
|
print("✅ Pull completed")
|
|
159
159
|
return GitOperationResult(
|
|
160
160
|
repo_path=path,
|
|
@@ -341,7 +341,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
|
|
|
341
341
|
|
|
342
342
|
# Now perform the actual operations
|
|
343
343
|
if pull:
|
|
344
|
-
result = git_action(path=a_path, action=GitAction.pull, r=recursive,
|
|
344
|
+
result = git_action(path=a_path, action=GitAction.pull, mess=None, r=recursive, auto_uv_sync=auto_uv_sync)
|
|
345
345
|
summary.pulls_attempted += 1
|
|
346
346
|
if result.success:
|
|
347
347
|
summary.pulls_successful += 1
|
|
@@ -350,7 +350,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
|
|
|
350
350
|
summary.failed_operations.append(result)
|
|
351
351
|
|
|
352
352
|
if commit:
|
|
353
|
-
result = git_action(a_path, action=GitAction.commit, r=recursive,
|
|
353
|
+
result = git_action(a_path, action=GitAction.commit, mess=None, r=recursive, auto_uv_sync=auto_uv_sync)
|
|
354
354
|
summary.commits_attempted += 1
|
|
355
355
|
if result.success:
|
|
356
356
|
if result.had_changes:
|
|
@@ -362,7 +362,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
|
|
|
362
362
|
summary.failed_operations.append(result)
|
|
363
363
|
|
|
364
364
|
if push:
|
|
365
|
-
result = git_action(a_path, action=GitAction.push, r=recursive,
|
|
365
|
+
result = git_action(a_path, action=GitAction.push, mess=None, r=recursive, auto_uv_sync=auto_uv_sync)
|
|
366
366
|
summary.pushes_attempted += 1
|
|
367
367
|
if result.success:
|
|
368
368
|
summary.pushes_successful += 1
|
|
@@ -20,11 +20,10 @@ def git_operations(
|
|
|
20
20
|
commit: bool,
|
|
21
21
|
push: bool,
|
|
22
22
|
recursive: bool,
|
|
23
|
-
|
|
23
|
+
auto_uv_sync: bool,
|
|
24
24
|
) -> None:
|
|
25
25
|
|
|
26
26
|
repos_root = resolve_directory(directory)
|
|
27
|
-
auto_uv_sync = not no_sync
|
|
28
27
|
from machineconfig.scripts.python.repos_helpers.action import perform_git_operations
|
|
29
28
|
from machineconfig.utils.path_extended import PathExtended
|
|
30
29
|
perform_git_operations(
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
_ ___ /^^\ /^\ /^^\_
|
|
2
|
+
_ _@)@) \ ,,/ '` ~ `'~~ ', `\.
|
|
3
|
+
_/o\_ _ _ _/~`.`...'~\ ./~~..,'`','',.,' ' ~:
|
|
4
|
+
/ `,'.~,~.~ . , . , ~|, ,/ .,' , ,. .. ,,. `, ~\_
|
|
5
|
+
( ' _' _ '_` _ ' . , `\_/ .' ..' ' ` ` `.. `, \_
|
|
6
|
+
~V~ V~ V~ V~ ~\ ` ' . ' , ' .,.,''`.,.''`.,.``. ', \_
|
|
7
|
+
_/\ /\ /\ /\_/, . ' , `_/~\_ .' .,. ,, , _/~\_ `. `. '., \_
|
|
8
|
+
< ~ ~ '~`'~'`, ., . `_: ::: \_ ' `_/ ::: \_ `.,' . ', \_
|
|
9
|
+
\ ' `_ '`_ _ ',/ _::_::_ \ _ _/ _::_::_ \ `.,'.,`., \-,-,-,_,_,
|
|
10
|
+
`'~~ `'~~ `'~~ `'~~ \(_)(_)(_)/ `~~' \(_)(_)(_)/ ~'`\_.._,._,'_;_;_;_;_;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.--. .--.
|
|
2
|
+
/ \/ \
|
|
3
|
+
| .-. .-. \
|
|
4
|
+
|/_ |/_ | \
|
|
5
|
+
|| `\|| `\| `----.
|
|
6
|
+
|\0_/ \0_/ --, \_
|
|
7
|
+
.--"""""-. / (` \ `-.
|
|
8
|
+
/ \-----'-. \ \
|
|
9
|
+
\ () () /`\ \
|
|
10
|
+
| .___.-' | \
|
|
11
|
+
\ /` \| / ;
|
|
12
|
+
`-.___ ___.' .-.`.---.| \
|
|
13
|
+
\| ``-..___,.-'`\| / / / | `\
|
|
14
|
+
` \| ,`/ / / , /
|
|
15
|
+
` |\ / / |\/
|
|
16
|
+
, .'`-; ' \/
|
|
17
|
+
, |\-' .' , .-'`
|
|
18
|
+
.-|\--;`` .-' |\.'
|
|
19
|
+
( `"'-.|\ (___,.--'`'
|
|
20
|
+
`-. `"` _.--'
|
|
21
|
+
`. _.-'`-.
|
|
22
|
+
`''---''`` `."
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
_.---._ .---.
|
|
2
|
+
__...---' .---. `---'-. `.
|
|
3
|
+
~ -~ -.-''__.--' _.'( | )`. `. `._ :
|
|
4
|
+
-.~~ .'__-'_ .--'' ._`---'_.-. `. `-`.
|
|
5
|
+
~ ~_~-~-~_ ~ -._ -._``---. -. `-._ `.
|
|
6
|
+
~- ~ ~ -_ -~ ~ -.._ _ _ _ ..-_ `. `-._``--.._
|
|
7
|
+
~~-~ ~-_ _~ ~-~ ~ -~ _~~_-~ -._ `-. -. `-._``--.._.--''. ~ -~_
|
|
8
|
+
~~ -~_-~ _~- _~~ _~-_~ ~-_~~ ~-.___ -._ `-.__ `. `. ~ -_~
|
|
9
|
+
~~ _~- ~~- -_~ ~- ~ - _~~- _~~ ~---...__ _ ._ .` `. ~-_~
|
|
10
|
+
~ ~- _~~- _-_~ ~-_ ~-~ ~_-~ _~- ~_~-_~ ~--.....--~ -~_ ~
|
|
11
|
+
~ ~ - ~ ~ ~~ - ~~- ~~- ~- ~ -~ ~ ~ -~~- ~- ~-~
|
|
@@ -6,7 +6,6 @@ import random
|
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
from rich import pretty
|
|
8
8
|
from rich.console import Console
|
|
9
|
-
from typing import Optional
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
def print_header():
|
|
@@ -38,18 +37,13 @@ def print_logo(logo: str):
|
|
|
38
37
|
if random.choice([True, True, False]): font_box_color(logo)
|
|
39
38
|
else: character_color(logo)
|
|
40
39
|
else:
|
|
41
|
-
print("\n" + "🚫 " + "-" * 70 + " 🚫")
|
|
42
|
-
print("🔍 Missing ASCII art dependencies. Install with: iwr bit.ly/cfgasciiartwindows | iex")
|
|
43
|
-
print("🚫 " + "-" * 70 + " 🚫\n")
|
|
40
|
+
# print("\n" + "🚫 " + "-" * 70 + " 🚫")
|
|
41
|
+
# print("🔍 Missing ASCII art dependencies. Install with: iwr bit.ly/cfgasciiartwindows | iex")
|
|
42
|
+
# print("🚫 " + "-" * 70 + " 🚫\n")
|
|
44
43
|
_default_art = Path(random.choice(glob.glob(str(Path(__file__).parent.joinpath("art", "*")))))
|
|
45
44
|
print(_default_art.read_text())
|
|
46
45
|
elif platform.system() in ["Linux", "Darwin"]: # Explicitly handle both Linux and macOS
|
|
47
|
-
|
|
48
|
-
path_dirs = os.environ['PATH'].split(os.pathsep)
|
|
49
|
-
for path_dir in path_dirs:
|
|
50
|
-
path_to_executable = os.path.join(path_dir, executable_name)
|
|
51
|
-
if os.path.isfile(path_to_executable) and os.access(path_to_executable, os.X_OK): return path_to_executable
|
|
52
|
-
return None
|
|
46
|
+
from machineconfig.utils.installer_utils.installer_abc import is_executable_in_path
|
|
53
47
|
avail_cowsay = is_executable_in_path("cowsay")
|
|
54
48
|
avail_lolcat = is_executable_in_path("lolcat")
|
|
55
49
|
avail_boxes = is_executable_in_path("boxes")
|
{machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/utils/installer_utils/installer_abc.py
RENAMED
|
@@ -141,11 +141,12 @@ def check_tool_exists(tool_name: str) -> bool:
|
|
|
141
141
|
return npm_check
|
|
142
142
|
else:
|
|
143
143
|
raise NotImplementedError(f"platform {platform.system()} not implemented")
|
|
144
|
-
|
|
144
|
+
|
|
145
|
+
def is_executable_in_path(name: str) -> bool:
|
|
145
146
|
import os
|
|
146
147
|
path_dirs = os.environ['PATH'].split(os.pathsep)
|
|
147
148
|
for path_dir in path_dirs:
|
|
148
|
-
path_to_executable = os.path.join(path_dir,
|
|
149
|
+
path_to_executable = os.path.join(path_dir, name)
|
|
149
150
|
if os.path.isfile(path_to_executable) and os.access(path_to_executable, os.X_OK): return True
|
|
150
151
|
return False
|
|
151
152
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
from pathlib import Path
|
|
3
2
|
from typing import Callable, Optional, Union, Any, Protocol, List, TypeVar
|
|
4
3
|
import logging
|
|
@@ -152,6 +151,64 @@ def to_pickle(obj: Any, path: Path) -> None:
|
|
|
152
151
|
path.write_bytes(pickle.dumps(obj))
|
|
153
152
|
|
|
154
153
|
|
|
154
|
+
class CacheMemory[T]():
|
|
155
|
+
def __init__(
|
|
156
|
+
self, source_func: Callable[[], T], expire: timedelta, logger: LoggerTemplate, name: Optional[str] = None
|
|
157
|
+
) -> None:
|
|
158
|
+
self.cache: T
|
|
159
|
+
self.source_func = source_func
|
|
160
|
+
self.time_produced = datetime.now()
|
|
161
|
+
self.logger = logger
|
|
162
|
+
self.expire = expire
|
|
163
|
+
self.name = name if isinstance(name, str) else str(self.source_func)
|
|
164
|
+
self.last_call_is_fresh = False
|
|
165
|
+
|
|
166
|
+
@property
|
|
167
|
+
def age(self) -> timedelta:
|
|
168
|
+
return datetime.now() - self.time_produced
|
|
169
|
+
|
|
170
|
+
def __call__(self, fresh: bool = False) -> T:
|
|
171
|
+
self.last_call_is_fresh = False
|
|
172
|
+
if fresh or not hasattr(self, "cache"):
|
|
173
|
+
if self.logger:
|
|
174
|
+
why = "There was an explicit fresh order." if fresh else "Previous cache never existed."
|
|
175
|
+
self.logger.warning(f"""
|
|
176
|
+
🆕 ════════════════════ NEW CACHE ════════════════════
|
|
177
|
+
🔄 {self.name} cache: Populating fresh cache from source func
|
|
178
|
+
ℹ️ Reason: {why}
|
|
179
|
+
════════════════════════════════════════════════════════""")
|
|
180
|
+
self.cache = self.source_func()
|
|
181
|
+
self.last_call_is_fresh = True
|
|
182
|
+
self.time_produced = datetime.now()
|
|
183
|
+
else:
|
|
184
|
+
age = self.age
|
|
185
|
+
if age > self.expire:
|
|
186
|
+
if self.logger:
|
|
187
|
+
self.logger.warning(f"""
|
|
188
|
+
🔄 ════════════════════ CACHE UPDATE ════════════════════
|
|
189
|
+
⚠️ {self.name} cache: Updating cache from source func
|
|
190
|
+
⏱️ Age = {age} > {self.expire}
|
|
191
|
+
════════════════════════════════════════════════════════""")
|
|
192
|
+
self.cache = self.source_func()
|
|
193
|
+
self.last_call_is_fresh = True
|
|
194
|
+
self.time_produced = datetime.now()
|
|
195
|
+
else:
|
|
196
|
+
if self.logger:
|
|
197
|
+
self.logger.warning(f"""
|
|
198
|
+
✅ ════════════════════ USING CACHE ════════════════════
|
|
199
|
+
📦 {self.name} cache: Using cached values
|
|
200
|
+
⏱️ Lag = {age}
|
|
201
|
+
════════════════════════════════════════════════════════""")
|
|
202
|
+
return self.cache
|
|
203
|
+
|
|
204
|
+
@staticmethod
|
|
205
|
+
def as_decorator(expire: timedelta, logger: LoggerTemplate, name: Optional[str] = None):
|
|
206
|
+
def decorator(source_func: Callable[[], T2]) -> CacheMemory["T2"]:
|
|
207
|
+
res = CacheMemory(source_func=source_func, expire=expire, logger=logger, name=name)
|
|
208
|
+
return res
|
|
209
|
+
return decorator
|
|
210
|
+
|
|
211
|
+
|
|
155
212
|
class Cache[T](): # This class helps to accelrate access to latest data coming from expensive function. The class has two flavours, memory-based and disk-based variants."""
|
|
156
213
|
def __init__(
|
|
157
214
|
self, source_func: Callable[[], T], expire: timedelta, logger: LoggerTemplate, path: Path, saver: Callable[[T, Path], Any] = to_pickle, reader: Callable[[Path], T] = from_pickle, name: Optional[str] = None
|
|
@@ -180,8 +237,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
|
|
|
180
237
|
📦 ════════════════════ CACHE OPERATION ════════════════════
|
|
181
238
|
🔄 {self.name} cache: Reading cached values from `{self.path}`
|
|
182
239
|
⏱️ Lag = {age}
|
|
183
|
-
════════════════════════════════════════════════════════════
|
|
184
|
-
"""
|
|
240
|
+
════════════════════════════════════════════════════════════"""
|
|
185
241
|
try:
|
|
186
242
|
self.cache = self.reader(self.path)
|
|
187
243
|
except Exception as ex:
|
|
@@ -190,8 +246,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
|
|
|
190
246
|
❌ ════════════════════ CACHE ERROR ════════════════════
|
|
191
247
|
⚠️ {self.name} cache: Cache file is corrupted
|
|
192
248
|
🔍 Error: {ex}
|
|
193
|
-
════════════════════════════════════════════════════════
|
|
194
|
-
"""
|
|
249
|
+
════════════════════════════════════════════════════════"""
|
|
195
250
|
self.logger.warning(msg1 + msg2)
|
|
196
251
|
self.cache = self.source_func()
|
|
197
252
|
self.last_call_is_fresh = True
|
|
@@ -208,8 +263,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
|
|
|
208
263
|
🆕 ════════════════════ NEW CACHE ════════════════════
|
|
209
264
|
🔄 {self.name} cache: Populating fresh cache from source func
|
|
210
265
|
ℹ️ Reason: {why}
|
|
211
|
-
════════════════════════════════════════════════════════
|
|
212
|
-
""")
|
|
266
|
+
════════════════════════════════════════════════════════""")
|
|
213
267
|
self.cache = self.source_func() # fresh data.
|
|
214
268
|
self.last_call_is_fresh = True
|
|
215
269
|
self.time_produced = datetime.now()
|
|
@@ -248,21 +302,3 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
|
|
|
248
302
|
return res
|
|
249
303
|
|
|
250
304
|
return decorator
|
|
251
|
-
|
|
252
|
-
# def from_cloud(self, cloud: str, rel2home: bool = True, root: Optional[str] = None):
|
|
253
|
-
# assert self.path is not None
|
|
254
|
-
# exists = self.path.exists()
|
|
255
|
-
# exists_but_old = exists and ((datetime.now() - datetime.fromtimestamp(self.path.stat().st_mtime)) > self.expire)
|
|
256
|
-
# if not exists or exists_but_old:
|
|
257
|
-
# returned_path = self.path.from_cloud(cloud=cloud, rel2home=rel2home, root=root)
|
|
258
|
-
# if returned_path is None and not exists:
|
|
259
|
-
# raise FileNotFoundError(f"❌ Failed to get @ {self.path}. Build the cache first with signed API.")
|
|
260
|
-
# elif returned_path is None and exists:
|
|
261
|
-
# self.logger.warning(f"""
|
|
262
|
-
# ⚠️ ════════════════════ CLOUD FETCH WARNING ════════════════════
|
|
263
|
-
# 🔄 Failed to get fresh data from cloud
|
|
264
|
-
# 📦 Using old cache @ {self.path}
|
|
265
|
-
# ════════════════════════════════════════════════════════════════""")
|
|
266
|
-
# else:
|
|
267
|
-
# pass # maybe we don't need to fetch it from cloud, if its too hot
|
|
268
|
-
# return self.reader(self.path)
|
|
@@ -191,6 +191,7 @@ src/machineconfig/scripts/python/devops_helpers/cli_repos.py
|
|
|
191
191
|
src/machineconfig/scripts/python/devops_helpers/cli_self.py
|
|
192
192
|
src/machineconfig/scripts/python/devops_helpers/cli_share_server.py
|
|
193
193
|
src/machineconfig/scripts/python/devops_helpers/cli_terminal.py
|
|
194
|
+
src/machineconfig/scripts/python/devops_helpers/cli_utils.py
|
|
194
195
|
src/machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py
|
|
195
196
|
src/machineconfig/scripts/python/devops_helpers/devops_status.py
|
|
196
197
|
src/machineconfig/scripts/python/devops_helpers/devops_update_repos.py
|
|
@@ -419,6 +420,10 @@ src/machineconfig/utils/files/ascii_art.py
|
|
|
419
420
|
src/machineconfig/utils/files/dbms.py
|
|
420
421
|
src/machineconfig/utils/files/headers.py
|
|
421
422
|
src/machineconfig/utils/files/read.py
|
|
423
|
+
src/machineconfig/utils/files/art/fat_croco.txt
|
|
424
|
+
src/machineconfig/utils/files/art/halfwit_croco.txt
|
|
425
|
+
src/machineconfig/utils/files/art/happy_croco.txt
|
|
426
|
+
src/machineconfig/utils/files/art/water_croco.txt
|
|
422
427
|
src/machineconfig/utils/files/ouch/__init__.py
|
|
423
428
|
src/machineconfig/utils/files/ouch/decompress.py
|
|
424
429
|
src/machineconfig/utils/installer_utils/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/remote_machine.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{machineconfig-6.36 → machineconfig-6.38}/src/machineconfig/cluster/remote/script_execution.py
RENAMED
|
File without changes
|