machineconfig 5.38__tar.gz → 5.39__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-5.38/src/machineconfig.egg-info → machineconfig-5.39}/PKG-INFO +2 -1
- {machineconfig-5.38 → machineconfig-5.39}/pyproject.toml +4 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/check_installations.py +2 -2
- machineconfig-5.39/src/machineconfig/profile/create_helper.py +26 -0
- machineconfig-5.38/src/machineconfig/profile/create.py → machineconfig-5.39/src/machineconfig/profile/create_links.py +6 -6
- machineconfig-5.38/src/machineconfig/profile/create_frontend.py → machineconfig-5.39/src/machineconfig/profile/create_links_export.py +6 -10
- machineconfig-5.38/src/machineconfig/profile/shell.py → machineconfig-5.39/src/machineconfig/profile/create_shell_profile.py +12 -37
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/z_ls +2 -2
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/agents.py +0 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/initai.py +3 -4
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/croshell.py +8 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/croshell_helpers/start_slidev.py +2 -2
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops.py +2 -2
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_config.py +8 -8
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py +3 -3
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_self.py +17 -4
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/devops_status.py +7 -80
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/devops_update_repos.py +1 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/fire_jobs.py +4 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ftpx.py +0 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/template.ps1 +1 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/template.sh +1 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +3 -3
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/interactive.py +2 -2
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/mount_nfs +1 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +1 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/entrypoint.py +2 -2
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/record.py +2 -2
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/sessions_helpers/sessions_multiprocess.py +3 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +1 -3
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/lfrc +4 -5
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/lfrc +4 -18
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -6
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/pistol/pistol.conf +1 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/bash/init.sh +7 -11
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/pwsh/init.ps1 +8 -6
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/svim/linux/init.toml +0 -4
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/svim/windows/init.toml +0 -3
- machineconfig-5.39/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +28 -0
- machineconfig-5.38/src/machineconfig/settings/shells/pwsh/commands.ps1 → machineconfig-5.39/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +14 -7
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/source_of_truth.py +2 -4
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/ssh.py +1 -1
- {machineconfig-5.38 → machineconfig-5.39/src/machineconfig.egg-info}/PKG-INFO +2 -1
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig.egg-info/SOURCES.txt +4 -11
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig.egg-info/requires.txt +1 -0
- machineconfig-5.38/src/machineconfig/scripts/windows/mounts/pomodoro.ps1 +0 -1
- machineconfig-5.38/src/machineconfig/scripts/windows/mounts/reload_path.ps1 +0 -3
- machineconfig-5.38/src/machineconfig/scripts/windows/mounts/share_nfs.ps1 +0 -0
- machineconfig-5.38/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -1
- machineconfig-5.38/src/machineconfig/settings/shells/bash/commands.sh +0 -24
- machineconfig-5.38/src/machineconfig/setup_linux/machineconfig.sh +0 -20
- machineconfig-5.38/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -6
- machineconfig-5.38/src/machineconfig/setup_windows/machineconfig.ps1 +0 -29
- machineconfig-5.38/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -7
- {machineconfig-5.38 → machineconfig-5.39}/MANIFEST.in +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/README.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/setup.cfg +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/distribute.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/file_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/job_params.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/run_remote.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/script_execution.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper_restart.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper_with_panes.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_manager_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/templates/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/installer_data.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/package_groups.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/python/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/python/vscode/api.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/logger.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/profile/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/profile/records/generic/shares.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/fzf2g +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/fzfag +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/fzffg +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/fzfg +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/fzfrga +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/other/share_smb +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/other/start_docker +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/skrg +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud_helpers/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud_helpers/cloud_copy.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud_helpers/cloud_helpers.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud_helpers/cloud_mount.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud_helpers/cloud_sync.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud_helpers/helpers2.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/cloud_helpers/helpers5.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/croshell_helpers/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/croshell_helpers/pomodoro.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/croshell_helpers/scheduler.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/croshell_helpers/viewer.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/croshell_helpers/viewer_template.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_data.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_nw.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_repos.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_share_server.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/cli_terminal.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/devops_add_identity.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/devops_add_ssh_key.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/themes/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/themes/choose_pwsh_theme.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_helpers/themes/choose_wezterm_theme.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_cursor_agents.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/helpers4.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_repos/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/action.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/clone.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/count_lines.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/sync.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/repos_helpers/update.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/sessions.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/python/sessions_helpers/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/broot/br.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/broot/conf.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/glow/glow.yml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/helix/config.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/helix/languages.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/keras/keras.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/colors +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/linux/icons +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/colors +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/icons +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/linters/.flake8 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/linters/.mypy.ini +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/linters/.pylintrc +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/linters/.ruff.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/mprocs/windows/other +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/presenterm/config.yaml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/procs/.procs.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/rofi/config.rasi +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/shells/wt/settings.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/streamlit/config.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/tere/terecd.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/wsl/.wslconfig +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/yazi/keymap.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/yazi/theme.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/yazi/yazi.toml +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zed/settings.json +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/commands/monitor +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/config.kdl +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/layouts/hist +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/apps.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/uv.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/apps.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/uv.ps1 +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/accessories.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/ai/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/code.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/files/ascii_art.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/files/dbms.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/files/headers.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/files/read.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/installer.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/installer_utils/installer.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/io.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/links.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/notifications.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/options.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/path_extended.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/path_helper.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/procs.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/scheduler.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/scheduling.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/terminal.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/upgrade_packages.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/utils/ve.py +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig.egg-info/dependency_links.txt +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig.egg-info/entry_points.txt +0 -0
- {machineconfig-5.38 → machineconfig-5.39}/src/machineconfig.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: machineconfig
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.39
|
|
4
4
|
Summary: Dotfiles management package
|
|
5
5
|
Author-email: Alex Al-Saffar <programmer@usa.com>
|
|
6
6
|
License: Apache 2.0
|
|
@@ -26,6 +26,7 @@ Requires-Dist: rclone-python>=0.1.23
|
|
|
26
26
|
Requires-Dist: pyjson5>=1.6.9
|
|
27
27
|
Requires-Dist: questionary>=2.1.1
|
|
28
28
|
Requires-Dist: typer-slim>=0.19.2
|
|
29
|
+
Requires-Dist: euporie>=2.8.14
|
|
29
30
|
Provides-Extra: windows
|
|
30
31
|
Requires-Dist: pywin32; extra == "windows"
|
|
31
32
|
Provides-Extra: plot
|
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "machineconfig"
|
|
9
|
-
version = "5.
|
|
9
|
+
version = "5.39"
|
|
10
10
|
description = "Dotfiles management package"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = {text = "Apache 2.0"}
|
|
@@ -35,6 +35,7 @@ dependencies = [
|
|
|
35
35
|
"pyjson5>=1.6.9",
|
|
36
36
|
"questionary>=2.1.1",
|
|
37
37
|
"typer-slim>=0.19.2",
|
|
38
|
+
"euporie>=2.8.14",
|
|
38
39
|
]
|
|
39
40
|
|
|
40
41
|
[project.optional-dependencies]
|
|
@@ -92,10 +93,12 @@ dev = [
|
|
|
92
93
|
"ipdb>=0.13.13",
|
|
93
94
|
"ipykernel>=6.30.1",
|
|
94
95
|
"ipython>=9.5.0",
|
|
96
|
+
"marimo>=0.16.5",
|
|
95
97
|
"matplotlib>=3.10.6",
|
|
96
98
|
"mypy>=1.18.2",
|
|
97
99
|
"nuitka>=2.7.16",
|
|
98
100
|
"numpy>=2.3.3",
|
|
101
|
+
"pandas>=2.3.3",
|
|
99
102
|
"plotly>=6.3.0",
|
|
100
103
|
"polars>=1.33.1",
|
|
101
104
|
"pre-commit>=4.3.0",
|
|
@@ -53,7 +53,7 @@ class ProcessMonitor:
|
|
|
53
53
|
command = tab_config["command"]
|
|
54
54
|
try:
|
|
55
55
|
check_script = self._create_process_check_script(command)
|
|
56
|
-
remote_cmd = f"$HOME
|
|
56
|
+
remote_cmd = f"$HOME/.local/bin devops self run-python -c {shlex.quote(check_script)}"
|
|
57
57
|
result = self.remote_executor.run_command(remote_cmd, timeout=15)
|
|
58
58
|
if result.returncode == 0:
|
|
59
59
|
try:
|
|
@@ -143,7 +143,7 @@ if __name__ == "__main__":
|
|
|
143
143
|
check_timestamp = timestamp_result.stdout.strip() if timestamp_result.returncode == 0 else "unknown"
|
|
144
144
|
|
|
145
145
|
check_script = self._create_fresh_check_script(command)
|
|
146
|
-
remote_cmd = f"$HOME
|
|
146
|
+
remote_cmd = f"$HOME/.local/bin/devops self run-python -c {shlex.quote(check_script)}"
|
|
147
147
|
result = self.remote_executor.run_command(remote_cmd, timeout=15)
|
|
148
148
|
|
|
149
149
|
if result.returncode == 0:
|
{machineconfig-5.38 → machineconfig-5.39}/src/machineconfig/jobs/installer/check_installations.py
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
import platform
|
|
3
|
-
from machineconfig.utils.source_of_truth import
|
|
3
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
APP_SUMMARY_PATH =
|
|
6
|
+
APP_SUMMARY_PATH = CONFIG_ROOT.joinpath(f"profile/records/{platform.system().lower()}/apps_summary_report.csv")
|
|
7
7
|
# CLOUD: str = "gdw" # Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
|
|
8
8
|
# # my onedrive doesn't allow sharing.
|
|
9
9
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
from typing import Literal
|
|
3
|
+
from machineconfig.utils.source_of_truth import LIBRARY_ROOT, CONFIG_ROOT
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def copy_assets_to_machine(which: Literal["scripts", "settings"]):
|
|
7
|
+
# callers, symlink public, shell profile adder (requires init.ps1 and scripts dir to be present on machine)
|
|
8
|
+
import platform
|
|
9
|
+
if platform.system().lower() == "windows":
|
|
10
|
+
system = "windows"
|
|
11
|
+
elif platform.system().lower() == "linux" or platform.system().lower() == "darwin":
|
|
12
|
+
system = "linux"
|
|
13
|
+
else:
|
|
14
|
+
raise NotImplementedError(f"System {platform.system().lower()} not supported")
|
|
15
|
+
match which:
|
|
16
|
+
case "scripts":
|
|
17
|
+
source = LIBRARY_ROOT.joinpath("scripts", system)
|
|
18
|
+
target = CONFIG_ROOT.joinpath("scripts", system)
|
|
19
|
+
case "settings":
|
|
20
|
+
source = LIBRARY_ROOT.joinpath("settings", system)
|
|
21
|
+
target = CONFIG_ROOT.joinpath("settings", system)
|
|
22
|
+
from machineconfig.utils.path_extended import PathExtended
|
|
23
|
+
PathExtended(source).copy(folder=target.parent)
|
|
24
|
+
PathExtended(source).copy(folder=target.parent)
|
|
25
|
+
|
|
26
|
+
|
|
@@ -13,7 +13,7 @@ from rich.table import Table
|
|
|
13
13
|
|
|
14
14
|
from machineconfig.utils.path_extended import PathExtended
|
|
15
15
|
from machineconfig.utils.links import symlink_map, copy_map
|
|
16
|
-
from machineconfig.utils.source_of_truth import LIBRARY_ROOT,
|
|
16
|
+
from machineconfig.utils.source_of_truth import LIBRARY_ROOT, CONFIG_ROOT
|
|
17
17
|
|
|
18
18
|
import platform
|
|
19
19
|
import subprocess
|
|
@@ -63,7 +63,7 @@ def read_mapper() -> MapperFileData:
|
|
|
63
63
|
"contents": file_base.get("contents"),
|
|
64
64
|
"copy": file_base.get("copy"),
|
|
65
65
|
}
|
|
66
|
-
if "
|
|
66
|
+
if "CONFIG_ROOT" in file_map["self_managed_config_file_path"]:
|
|
67
67
|
if program_key not in public:
|
|
68
68
|
public[program_key] = []
|
|
69
69
|
public[program_key].append(file_map)
|
|
@@ -107,7 +107,7 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
|
|
|
107
107
|
console.rule(f"🔄 Processing [bold]{program_name}[/] symlinks", style="cyan")
|
|
108
108
|
for a_mapper in program_files:
|
|
109
109
|
config_file_default_path = PathExtended(a_mapper["config_file_default_path"])
|
|
110
|
-
self_managed_config_file_path = PathExtended(a_mapper["self_managed_config_file_path"].replace("
|
|
110
|
+
self_managed_config_file_path = PathExtended(a_mapper["self_managed_config_file_path"].replace("CONFIG_ROOT", CONFIG_ROOT.as_posix()))
|
|
111
111
|
|
|
112
112
|
# Determine whether to use copy or symlink
|
|
113
113
|
use_copy = method == "copy" or a_mapper.get("copy", False)
|
|
@@ -215,7 +215,7 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
|
|
|
215
215
|
|
|
216
216
|
if system == "Linux":
|
|
217
217
|
console.print("\n[bold]📜 Setting executable permissions for scripts...[/bold]")
|
|
218
|
-
subprocess.run(f"chmod +x {
|
|
218
|
+
subprocess.run(f"chmod +x {CONFIG_ROOT.joinpath(f'scripts/{system.lower()}')} -R", shell=True, capture_output=True, text=True)
|
|
219
219
|
console.print("[green]✅ Script permissions updated[/green]")
|
|
220
220
|
|
|
221
221
|
# Display operation summary table
|
|
@@ -250,8 +250,8 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
|
|
|
250
250
|
# Export operation records to CSV
|
|
251
251
|
import csv
|
|
252
252
|
from datetime import datetime
|
|
253
|
-
|
|
254
|
-
csv_dir = PathExtended(
|
|
253
|
+
|
|
254
|
+
csv_dir = PathExtended(CONFIG_ROOT).joinpath("symlink_operations")
|
|
255
255
|
csv_dir.mkdir(parents=True, exist_ok=True)
|
|
256
256
|
|
|
257
257
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import typer
|
|
3
3
|
from typing import Optional, Literal
|
|
4
|
-
from pathlib import Path
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
def main_public_from_parser(method: Literal["symlink", "copy"] = typer.Option(..., help="Method to use for setting up the config file."),
|
|
@@ -12,12 +11,7 @@ def main_public_from_parser(method: Literal["symlink", "copy"] = typer.Option(..
|
|
|
12
11
|
SOURCE = Self-Managed-Config-File-Path
|
|
13
12
|
TARGET = Config-File-Default-Path
|
|
14
13
|
For public config files, the source always exists, because we know it comes from machineconfig repo."""
|
|
15
|
-
from machineconfig.profile.
|
|
16
|
-
if method == "symlink":
|
|
17
|
-
machineconfig_repo_path = Path.home().joinpath("code/machineconfig")
|
|
18
|
-
if not machineconfig_repo_path.exists() or not machineconfig_repo_path.is_dir():
|
|
19
|
-
raise FileNotFoundError(f"machineconfig repo not found at {machineconfig_repo_path}. Cannot create symlinks to non-existing source files.")
|
|
20
|
-
|
|
14
|
+
from machineconfig.profile.create_links import ConfigMapper, read_mapper
|
|
21
15
|
mapper_full = read_mapper()["public"]
|
|
22
16
|
if which is None:
|
|
23
17
|
assert interactive is True
|
|
@@ -31,7 +25,9 @@ def main_public_from_parser(method: Literal["symlink", "copy"] = typer.Option(..
|
|
|
31
25
|
items_chosen = which.split(",")
|
|
32
26
|
items_objections: dict[str, list[ConfigMapper]] = {item: mapper_full[item] for item in items_chosen if item in mapper_full}
|
|
33
27
|
|
|
34
|
-
from machineconfig.profile.
|
|
28
|
+
from machineconfig.profile.create_links import apply_mapper
|
|
29
|
+
from machineconfig.profile.create_helper import copy_assets_to_machine
|
|
30
|
+
copy_assets_to_machine(which="settings") # config files live here and will be linked to.
|
|
35
31
|
apply_mapper(mapper_data=items_objections, on_conflict=on_conflict, method=method)
|
|
36
32
|
|
|
37
33
|
|
|
@@ -39,7 +35,7 @@ def main_private_from_parser(method: Literal["symlink", "copy"] = typer.Option(.
|
|
|
39
35
|
on_conflict: Literal["throwError", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"] = typer.Option("throwError", help="Action to take on conflict"),
|
|
40
36
|
which: Optional[str] = typer.Option(None, help="Specific items to process"),
|
|
41
37
|
interactive: bool = typer.Option(False, help="Run in interactive mode")):
|
|
42
|
-
from machineconfig.profile.
|
|
38
|
+
from machineconfig.profile.create_links import ConfigMapper, read_mapper
|
|
43
39
|
|
|
44
40
|
mapper_full = read_mapper()["private"]
|
|
45
41
|
if which is None:
|
|
@@ -54,5 +50,5 @@ def main_private_from_parser(method: Literal["symlink", "copy"] = typer.Option(.
|
|
|
54
50
|
items_chosen = which.split(",")
|
|
55
51
|
items_objections: dict[str, list[ConfigMapper]] = {item: mapper_full[item] for item in items_chosen if item in mapper_full}
|
|
56
52
|
|
|
57
|
-
from machineconfig.profile.
|
|
53
|
+
from machineconfig.profile.create_links import apply_mapper
|
|
58
54
|
apply_mapper(mapper_data=items_objections, on_conflict=on_conflict, method=method)
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"""shell"""
|
|
2
2
|
|
|
3
|
-
from typing import Literal
|
|
4
3
|
from machineconfig.utils.path_extended import PathExtended
|
|
5
|
-
from machineconfig.utils.source_of_truth import
|
|
4
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
6
5
|
|
|
7
6
|
import platform
|
|
8
7
|
import os
|
|
@@ -36,51 +35,27 @@ def get_shell_profile_path() -> PathExtended:
|
|
|
36
35
|
return profile_path
|
|
37
36
|
|
|
38
37
|
|
|
39
|
-
def create_default_shell_profile(
|
|
40
|
-
if method == "reference":
|
|
41
|
-
machineconfig_repo_path = PathExtended.home().joinpath("code/machineconfig")
|
|
42
|
-
if not machineconfig_repo_path.exists() or not machineconfig_repo_path.is_dir():
|
|
43
|
-
raise FileNotFoundError(f"machineconfig repo not found at {machineconfig_repo_path}. Cannot create symlinks to non-existing source files.")
|
|
44
|
-
|
|
38
|
+
def create_default_shell_profile() -> None:
|
|
45
39
|
shell_profile_path = get_shell_profile_path()
|
|
46
40
|
shell_profile = shell_profile_path.read_text(encoding="utf-8")
|
|
47
41
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
init_script_copy_path = PathExtended(CONFIG_PATH).joinpath("profile/init.ps1").collapseuser()
|
|
52
|
-
init_script_copy_path.parent.mkdir(parents=True, exist_ok=True)
|
|
53
|
-
init_script.copy(path=init_script_copy_path, overwrite=True)
|
|
42
|
+
from machineconfig.profile.create_helper import copy_assets_to_machine
|
|
43
|
+
copy_assets_to_machine("settings") # init.ps1 or init.sh live here
|
|
44
|
+
copy_assets_to_machine("scripts") # init scripts are going to reference those scripts.
|
|
54
45
|
|
|
55
|
-
|
|
56
|
-
|
|
46
|
+
if system == "Windows":
|
|
47
|
+
init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/pwsh/init.ps1")
|
|
48
|
+
source_line = f""". {str(init_script.collapseuser()).replace("~", "$HOME")}"""
|
|
57
49
|
else:
|
|
58
|
-
init_script = PathExtended(
|
|
59
|
-
|
|
60
|
-
init_script_copy_path.parent.mkdir(parents=True, exist_ok=True)
|
|
61
|
-
init_script.copy(path=init_script_copy_path, overwrite=True)
|
|
62
|
-
|
|
63
|
-
source_using_reference = f"""source {str(init_script.collapseuser()).replace("~", "$HOME")}"""
|
|
64
|
-
source_using_copy = f"""source {str(init_script_copy_path).replace("~", "$HOME")}"""
|
|
65
|
-
|
|
66
|
-
match method:
|
|
67
|
-
case "copy":
|
|
68
|
-
line_of_interest = source_using_copy
|
|
69
|
-
line_other = source_using_reference
|
|
70
|
-
case "reference":
|
|
71
|
-
line_of_interest = source_using_reference
|
|
72
|
-
line_other = source_using_copy
|
|
50
|
+
init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/bash/init.sh")
|
|
51
|
+
source_line = f"""source {str(init_script).replace("~", "$HOME")}"""
|
|
73
52
|
|
|
74
53
|
was_shell_updated = False
|
|
75
|
-
if
|
|
76
|
-
shell_profile = shell_profile.replace(line_other, "")
|
|
77
|
-
was_shell_updated = True
|
|
78
|
-
|
|
79
|
-
if line_of_interest in shell_profile:
|
|
54
|
+
if source_line in shell_profile:
|
|
80
55
|
console.print(Panel("🔄 PROFILE | Skipping init script sourcing - already present in profile", title="[bold blue]Profile[/bold blue]", border_style="blue"))
|
|
81
56
|
else:
|
|
82
57
|
console.print(Panel("📝 PROFILE | Adding init script sourcing to profile", title="[bold blue]Profile[/bold blue]", border_style="blue"))
|
|
83
|
-
shell_profile += "\n" +
|
|
58
|
+
shell_profile += "\n" + source_line + "\n"
|
|
84
59
|
if system == "Linux":
|
|
85
60
|
result = subprocess.run(["cat", "/proc/version"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=False)
|
|
86
61
|
if result.returncode == 0 and result.stdout:
|
|
@@ -40,11 +40,11 @@ fi
|
|
|
40
40
|
if [[ "${ZJ_SESSIONS}" == *"(current)"* ]]; then
|
|
41
41
|
# if so, then we are in a zellijsession
|
|
42
42
|
echo "already inside a session, existing."
|
|
43
|
-
COMMANDS=$(ls $HOME/
|
|
43
|
+
COMMANDS=$(ls $HOME/.config/machineconfig/settings/zellij/commands)
|
|
44
44
|
# fzf the results
|
|
45
45
|
res="$(echo -e "${COMMANDS}" | fzf --ansi)"
|
|
46
46
|
# run the bash fiZJ_SESSIONSle chosen
|
|
47
|
-
bash $HOME/
|
|
47
|
+
bash $HOME/.config/machineconfig/settings/zellij/commands/$res
|
|
48
48
|
|
|
49
49
|
else # ==> we are not in a zellijsession
|
|
50
50
|
if [ "${NO_SESSIONS}" -ge 1 ]; then # sessions do exist
|
|
@@ -103,7 +103,6 @@ def create(
|
|
|
103
103
|
layoutfile = get_agents_launch_layout(session_root=agents_dir)
|
|
104
104
|
regenerate_py_code = f"""
|
|
105
105
|
#!/usr/bin/env uv run --python 3.13 --with machineconfig
|
|
106
|
-
#!/usr/bin/env uv run --no-dev --project $HOME/code/machineconfig
|
|
107
106
|
fire_agents create --context-path "{prompt_material_path}" \\
|
|
108
107
|
--{search_strategy} "{context_path or keyword_search or filename_pattern}" \\
|
|
109
108
|
--prompt-path "{prompt_path or ''}" \\
|
|
@@ -23,12 +23,11 @@ uv init --python 3.13
|
|
|
23
23
|
uv venv
|
|
24
24
|
uv add --upgrade-package pylint pyright mypy pyrefly ty --dev # linters and type checkers
|
|
25
25
|
uv add --upgrade-package pytest --dev
|
|
26
|
-
|
|
26
|
+
uv add typer --dev
|
|
27
27
|
|
|
28
28
|
"""
|
|
29
|
-
import
|
|
30
|
-
|
|
31
|
-
subprocess.run(command_to_run, shell=True, check=True)
|
|
29
|
+
from machineconfig.utils.code import run_shell_script
|
|
30
|
+
run_shell_script(command_to_run)
|
|
32
31
|
else:
|
|
33
32
|
print("Terminating initai ...")
|
|
34
33
|
return
|
|
@@ -66,7 +66,6 @@ uv run -m cleanpy .
|
|
|
66
66
|
uv run -m ruff clean
|
|
67
67
|
# uv run -m ruff format .
|
|
68
68
|
uv run -m ruff check . --fix
|
|
69
|
-
uv run --no-dev --project $HOME/code/machineconfig -m machineconfig.scripts.python.ai.generate_files
|
|
70
69
|
|
|
71
70
|
New-Item -ItemType Directory -Force -Path .ai/linters | Out-Null
|
|
72
71
|
|
|
@@ -142,7 +142,14 @@ from pathlib import Path
|
|
|
142
142
|
else:
|
|
143
143
|
if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
|
|
144
144
|
else: profile = ""
|
|
145
|
-
if local:
|
|
145
|
+
if local:
|
|
146
|
+
from machineconfig.utils.source_of_truth import LIBRARY_ROOT
|
|
147
|
+
repo_root = LIBRARY_ROOT.parent.parent
|
|
148
|
+
if repo_root.parent.name == "code" and repo_root.name == "machineconfig" and repo_root.exists() and repo_root.is_dir():
|
|
149
|
+
ve_line = f"--project {str(repo_root)}"
|
|
150
|
+
else:
|
|
151
|
+
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"))
|
|
152
|
+
return
|
|
146
153
|
else: ve_line = "--with machineconfig[plot]"
|
|
147
154
|
fire_line = f"uv run --python 3.13 {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
|
|
148
155
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
slidev
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from machineconfig.utils.source_of_truth import
|
|
5
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
6
6
|
from machineconfig.utils.code import print_code
|
|
7
7
|
from machineconfig.utils.path_extended import PathExtended
|
|
8
8
|
from machineconfig.utils.terminal import Response
|
|
@@ -13,7 +13,7 @@ import platform
|
|
|
13
13
|
|
|
14
14
|
PORT_DEFAULT = 3030
|
|
15
15
|
|
|
16
|
-
SLIDEV_REPO = PathExtended(
|
|
16
|
+
SLIDEV_REPO = PathExtended(CONFIG_ROOT).joinpath(".cache/slidev")
|
|
17
17
|
if not SLIDEV_REPO.joinpath("components").exists():
|
|
18
18
|
print("📦 Initializing Slidev repository...")
|
|
19
19
|
subprocess.run(f"cd {SLIDEV_REPO.parent};npm init slidev@latest", check=False, shell=True, text=True)
|
|
@@ -5,7 +5,7 @@ from typing import Optional
|
|
|
5
5
|
|
|
6
6
|
import machineconfig.scripts.python.devops_helpers.cli_repos as cli_repos
|
|
7
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
11
|
|
|
@@ -24,7 +24,7 @@ def install( which: Optional[str] = typer.Option(None, "--which", "-w", help="Co
|
|
|
24
24
|
app.add_typer(cli_repos.app, name="repos")
|
|
25
25
|
app.add_typer(cli_config.config_apps, name="config")
|
|
26
26
|
app.add_typer(cli_data.app_data, name="data")
|
|
27
|
-
app.add_typer(cli_app, name="self")
|
|
27
|
+
app.add_typer(cli_self.cli_app, name="self")
|
|
28
28
|
app.add_typer(cli_network.nw_apps, name="network")
|
|
29
29
|
|
|
30
30
|
|
|
@@ -13,8 +13,8 @@ def private(method: Literal["symlink", "copy"] = typer.Option(..., "--method", "
|
|
|
13
13
|
which: Optional[str] = typer.Option(None, "--which", "-w", help="Specific items to process"),
|
|
14
14
|
interactive: bool = typer.Option(False, "--interactive", "-ia", help="Run in interactive mode")):
|
|
15
15
|
"""🔗 Manage private configuration files."""
|
|
16
|
-
import machineconfig.profile.
|
|
17
|
-
|
|
16
|
+
import machineconfig.profile.create_links_export as create_links_export
|
|
17
|
+
create_links_export.main_private_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
|
|
18
18
|
|
|
19
19
|
@config_apps.command(no_args_is_help=True)
|
|
20
20
|
def public(method: Literal["symlink", "copy"] = typer.Option(..., "--method", "-m", help="Method to use for setting up the config file."),
|
|
@@ -22,8 +22,8 @@ def public(method: Literal["symlink", "copy"] = typer.Option(..., "--method", "-
|
|
|
22
22
|
which: Optional[str] = typer.Option(None, "--which", "-w", help="Specific items to process"),
|
|
23
23
|
interactive: bool = typer.Option(False, "--interactive", "-ia", help="Run in interactive mode")):
|
|
24
24
|
"""🔗 Manage public configuration files."""
|
|
25
|
-
import machineconfig.profile.
|
|
26
|
-
|
|
25
|
+
import machineconfig.profile.create_links_export as create_links_export
|
|
26
|
+
create_links_export.main_public_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
|
|
27
27
|
|
|
28
28
|
@config_apps.command(no_args_is_help=True)
|
|
29
29
|
def dotfile(file: Annotated[str, typer.Argument(help="file/folder path.")],
|
|
@@ -35,11 +35,11 @@ def dotfile(file: Annotated[str, typer.Argument(help="file/folder path.")],
|
|
|
35
35
|
dotfile_module.main(file=file, overwrite=overwrite, dest=dest)
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
@config_apps.command(no_args_is_help=
|
|
39
|
-
def shell(
|
|
38
|
+
@config_apps.command(no_args_is_help=False)
|
|
39
|
+
def shell():
|
|
40
40
|
"""🔗 Configure your shell profile."""
|
|
41
|
-
from machineconfig.profile.
|
|
42
|
-
create_default_shell_profile(
|
|
41
|
+
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
42
|
+
create_default_shell_profile()
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
@config_apps.command(no_args_is_help=False)
|
|
@@ -23,7 +23,7 @@ def main(
|
|
|
23
23
|
|
|
24
24
|
from machineconfig.utils.links import symlink_map
|
|
25
25
|
from machineconfig.utils.path_extended import PathExtended
|
|
26
|
-
from machineconfig.utils.source_of_truth import
|
|
26
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
27
27
|
console = Console()
|
|
28
28
|
orig_path = PathExtended(file).expanduser().absolute()
|
|
29
29
|
if dest == "":
|
|
@@ -35,7 +35,7 @@ def main(
|
|
|
35
35
|
junction = orig_path.split(at=".config", sep=-1)[1]
|
|
36
36
|
else:
|
|
37
37
|
junction = orig_path.rel2home()
|
|
38
|
-
new_path = PathExtended(
|
|
38
|
+
new_path = PathExtended(CONFIG_ROOT).parent.parent.joinpath(junction)
|
|
39
39
|
else:
|
|
40
40
|
dest_path = PathExtended(dest).expanduser().absolute()
|
|
41
41
|
dest_path.mkdir(parents=True, exist_ok=True)
|
|
@@ -59,7 +59,7 @@ def main(
|
|
|
59
59
|
|
|
60
60
|
mapper_snippet = "\n".join(
|
|
61
61
|
[
|
|
62
|
-
f"[bold]📝 Edit configuration file:[/] [cyan]nano {PathExtended(
|
|
62
|
+
f"[bold]📝 Edit configuration file:[/] [cyan]nano {PathExtended(CONFIG_ROOT)}/symlinks/mapper.toml[/cyan]",
|
|
63
63
|
"",
|
|
64
64
|
f"[{new_path.parent.name}]",
|
|
65
65
|
f"{orig_path.name.split('.')[0]} = {{ this = '{orig_path.collapseuser().as_posix()}', to_this = '{new_path.collapseuser().as_posix()}' }}",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
|
|
2
|
+
from git import Optional
|
|
2
3
|
import typer
|
|
3
4
|
|
|
4
5
|
cli_app = typer.Typer(help="🔄 SELF operations subcommands", no_args_is_help=True)
|
|
@@ -24,18 +25,30 @@ def clone():
|
|
|
24
25
|
"""📋 CLONE machienconfig locally and incorporate to shell profile for faster execution and nightly updates."""
|
|
25
26
|
import platform
|
|
26
27
|
from machineconfig.utils.code import run_shell_script
|
|
27
|
-
from machineconfig.profile.
|
|
28
|
+
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
28
29
|
if platform.system() == "Windows":
|
|
29
30
|
from machineconfig.setup_windows import MACHINECONFIG
|
|
30
|
-
create_default_shell_profile(
|
|
31
|
+
create_default_shell_profile()
|
|
31
32
|
else:
|
|
32
33
|
from machineconfig.setup_linux import MACHINECONFIG
|
|
33
|
-
create_default_shell_profile(
|
|
34
|
+
create_default_shell_profile()
|
|
34
35
|
run_shell_script(MACHINECONFIG.read_text(encoding="utf-8"))
|
|
35
36
|
|
|
36
|
-
@cli_app.command()
|
|
37
|
+
@cli_app.command(no_args_is_help=False)
|
|
37
38
|
def navigate():
|
|
38
39
|
"""📚 NAVIGATE command structure with TUI"""
|
|
39
40
|
from machineconfig.scripts.python.devops_navigator import main
|
|
40
41
|
main()
|
|
41
42
|
|
|
43
|
+
|
|
44
|
+
@cli_app.command(no_args_is_help=True)
|
|
45
|
+
def run_python(ip: str = typer.Argument(..., help="Python command to run in the machineconfig environment"),
|
|
46
|
+
command: Optional[bool] = typer.Option(False, "--command", "-c", help="Run as command")):
|
|
47
|
+
"""🐍 RUN python command/file in the machineconfig environment"""
|
|
48
|
+
if command:
|
|
49
|
+
exec(ip)
|
|
50
|
+
return
|
|
51
|
+
import machineconfig
|
|
52
|
+
import subprocess
|
|
53
|
+
import sys
|
|
54
|
+
subprocess.run([sys.executable, ip], cwd=machineconfig.__path__[0])
|
|
@@ -11,7 +11,7 @@ from rich.table import Table
|
|
|
11
11
|
from rich.text import Text
|
|
12
12
|
|
|
13
13
|
from machineconfig.utils.path_extended import PathExtended
|
|
14
|
-
from machineconfig.utils.source_of_truth import
|
|
14
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT, DEFAULTS_PATH, LIBRARY_ROOT
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
console = Console()
|
|
@@ -36,7 +36,7 @@ def _check_system_info() -> dict[str, str]:
|
|
|
36
36
|
|
|
37
37
|
def _check_shell_profile_status() -> dict[str, Any]:
|
|
38
38
|
"""Check shell profile configuration status."""
|
|
39
|
-
from machineconfig.profile.
|
|
39
|
+
from machineconfig.profile.create_shell_profile import get_shell_profile_path
|
|
40
40
|
|
|
41
41
|
try:
|
|
42
42
|
profile_path = get_shell_profile_path()
|
|
@@ -46,13 +46,13 @@ def _check_shell_profile_status() -> dict[str, Any]:
|
|
|
46
46
|
profile_content = profile_path.read_text(encoding="utf-8")
|
|
47
47
|
system_name = platform.system()
|
|
48
48
|
if system_name == "Windows":
|
|
49
|
-
init_script = PathExtended(
|
|
50
|
-
init_script_copy = PathExtended(
|
|
49
|
+
init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/pwsh/init.ps1")
|
|
50
|
+
init_script_copy = PathExtended(CONFIG_ROOT).joinpath("profile/init.ps1").collapseuser()
|
|
51
51
|
source_reference = f". {str(init_script.collapseuser()).replace('~', '$HOME')}"
|
|
52
52
|
source_copy = f". {str(init_script_copy).replace('~', '$HOME')}"
|
|
53
53
|
else:
|
|
54
|
-
init_script = PathExtended(
|
|
55
|
-
init_script_copy = PathExtended(
|
|
54
|
+
init_script = PathExtended(CONFIG_ROOT).joinpath("settings/shells/bash/init.sh")
|
|
55
|
+
init_script_copy = PathExtended(CONFIG_ROOT).joinpath("profile/init.sh").collapseuser()
|
|
56
56
|
source_reference = f"source {str(init_script.collapseuser()).replace('~', '$HOME')}"
|
|
57
57
|
source_copy = f"source {str(init_script_copy).replace('~', '$HOME')}"
|
|
58
58
|
|
|
@@ -79,34 +79,6 @@ def _check_shell_profile_status() -> dict[str, Any]:
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
|
|
82
|
-
def _check_machineconfig_repo() -> dict[str, Any]:
|
|
83
|
-
"""Check machineconfig repository status."""
|
|
84
|
-
repo_path = Path.home().joinpath("code/machineconfig")
|
|
85
|
-
if not repo_path.exists():
|
|
86
|
-
return {"exists": False, "is_repo": False, "clean": False, "branch": "N/A", "commit": "N/A", "remotes": []}
|
|
87
|
-
|
|
88
|
-
try:
|
|
89
|
-
import git
|
|
90
|
-
|
|
91
|
-
repo = git.Repo(str(repo_path))
|
|
92
|
-
is_dirty = repo.is_dirty(untracked_files=True)
|
|
93
|
-
current_branch = repo.active_branch.name if not repo.head.is_detached else "DETACHED"
|
|
94
|
-
current_commit = repo.head.commit.hexsha[:8]
|
|
95
|
-
remotes = [remote.name for remote in repo.remotes]
|
|
96
|
-
|
|
97
|
-
return {
|
|
98
|
-
"exists": True,
|
|
99
|
-
"is_repo": True,
|
|
100
|
-
"clean": not is_dirty,
|
|
101
|
-
"branch": current_branch,
|
|
102
|
-
"commit": current_commit,
|
|
103
|
-
"remotes": remotes,
|
|
104
|
-
"path": str(repo_path),
|
|
105
|
-
}
|
|
106
|
-
except Exception as ex:
|
|
107
|
-
return {"exists": True, "is_repo": False, "clean": False, "branch": "Error", "commit": "N/A", "remotes": [], "error": str(ex)}
|
|
108
|
-
|
|
109
|
-
|
|
110
82
|
def _check_repos_status() -> dict[str, Any]:
|
|
111
83
|
"""Check configured repositories status."""
|
|
112
84
|
from machineconfig.utils.io import read_ini
|
|
@@ -178,7 +150,7 @@ def _check_ssh_status() -> dict[str, Any]:
|
|
|
178
150
|
|
|
179
151
|
def _check_config_files_status() -> dict[str, Any]:
|
|
180
152
|
"""Check public and private configuration files status."""
|
|
181
|
-
from machineconfig.profile.
|
|
153
|
+
from machineconfig.profile.create_links import read_mapper
|
|
182
154
|
|
|
183
155
|
try:
|
|
184
156
|
mapper = read_mapper()
|
|
@@ -320,48 +292,6 @@ def _display_shell_status(status: dict[str, Any]) -> None:
|
|
|
320
292
|
)
|
|
321
293
|
|
|
322
294
|
|
|
323
|
-
def _display_machineconfig_repo(info: dict[str, Any]) -> None:
|
|
324
|
-
"""Display machineconfig repository status."""
|
|
325
|
-
console.rule("[bold magenta]📦 Machineconfig Repository[/bold magenta]")
|
|
326
|
-
|
|
327
|
-
if not info["exists"]:
|
|
328
|
-
console.print(
|
|
329
|
-
Panel(
|
|
330
|
-
"❌ Machineconfig repository not found at ~/code/machineconfig",
|
|
331
|
-
title="Repository Status",
|
|
332
|
-
border_style="red",
|
|
333
|
-
padding=(1, 2),
|
|
334
|
-
expand=False,
|
|
335
|
-
)
|
|
336
|
-
)
|
|
337
|
-
return
|
|
338
|
-
|
|
339
|
-
if not info["is_repo"]:
|
|
340
|
-
console.print(
|
|
341
|
-
Panel(
|
|
342
|
-
f"❌ Directory exists but is not a git repository\n{info.get('error', 'Unknown error')}",
|
|
343
|
-
title="Repository Status",
|
|
344
|
-
border_style="red",
|
|
345
|
-
padding=(1, 2),
|
|
346
|
-
expand=False,
|
|
347
|
-
)
|
|
348
|
-
)
|
|
349
|
-
return
|
|
350
|
-
|
|
351
|
-
table = Table(show_header=False, box=None, padding=(0, 1), expand=False)
|
|
352
|
-
table.add_column("Property", style="cyan", no_wrap=True)
|
|
353
|
-
table.add_column("Value", style="white")
|
|
354
|
-
|
|
355
|
-
table.add_row("📁 Path", info["path"])
|
|
356
|
-
table.add_row("🌿 Branch", info["branch"])
|
|
357
|
-
table.add_row("🔖 Commit", info["commit"])
|
|
358
|
-
table.add_row(f"{'✅' if info['clean'] else '⚠️'} Status", "Clean" if info["clean"] else "Uncommitted changes")
|
|
359
|
-
table.add_row("📡 Remotes", ", ".join(info["remotes"]) if info["remotes"] else "None")
|
|
360
|
-
|
|
361
|
-
border_style = "green" if info["clean"] else "yellow"
|
|
362
|
-
console.print(Panel(table, title="Machineconfig Repository", border_style=border_style, padding=(1, 2), expand=False))
|
|
363
|
-
|
|
364
|
-
|
|
365
295
|
def _display_repos_status(status: dict[str, Any]) -> None:
|
|
366
296
|
"""Display configured repositories status."""
|
|
367
297
|
console.rule("[bold cyan]📚 Configured Repositories[/bold cyan]")
|
|
@@ -557,9 +487,6 @@ def main() -> None:
|
|
|
557
487
|
shell_status = _check_shell_profile_status()
|
|
558
488
|
_display_shell_status(shell_status)
|
|
559
489
|
|
|
560
|
-
machineconfig_repo = _check_machineconfig_repo()
|
|
561
|
-
_display_machineconfig_repo(machineconfig_repo)
|
|
562
|
-
|
|
563
490
|
repos_status = _check_repos_status()
|
|
564
491
|
_display_repos_status(repos_status)
|
|
565
492
|
|
|
@@ -198,7 +198,7 @@ def _display_summary(results: list[RepositoryUpdateResult]) -> None:
|
|
|
198
198
|
def main(verbose: bool = True, allow_password_prompt: bool = False) -> None:
|
|
199
199
|
"""Main function to update all configured repositories."""
|
|
200
200
|
_ = verbose
|
|
201
|
-
repos: list[Path] = [
|
|
201
|
+
repos: list[Path] = []
|
|
202
202
|
try:
|
|
203
203
|
tmp = read_ini(DEFAULTS_PATH)["general"]["repos"].split(",")
|
|
204
204
|
if tmp[-1] == "":
|